zip()関数は、Pythonの組み込み関数の1つです。複数のシーケンス(リスト、タプル、辞書、セット、文字列、および範囲()間隔のリスト)をzipオブジェクトに「圧縮」できます。いわゆる「圧縮」は、実際には、これらのシーケンスの対応する位置にある要素を再グループ化して、新しいタプルを生成することです。
Python 3.xバージョンとは異なり、Python 2.xバージョンのzip()関数は、zipオブジェクトを返すのではなく、直接リストを返します。ただし、返されるリストまたはzipオブジェクトには同じ要素(すべてのタプル)が含まれています。
zip()関数の構文は次のとおりです。
zip(反復可能、...)
反復可能な場合、...は、複数のリスト、タプル、辞書、セット、文字列、さらには範囲()の間隔を意味します。https://www.furuihua.cn/pingtai/
次のプログラムは、zip()関数の基本的な使用方法を示しています。
- my_listという= [ 11 、12 、13 ]
- my_tuple = (21 、22 、23 )
- print ([x for x in zip (my_list 、my_tuple )])
- my_dic = { 31 :2 、32 :4 、33 :5 }
- my_set = { 41 、42 、43 、44 }
- 印刷([x for x in zip (my_dic )])
- my_pychar = "python"
- my_shechar = "シェル"
- print ([x for x in zip (my_pychar 、my_shechar )])
プログラムの実行結果は次のとおりです。
[(11、21)、(12、22)、(13、23)]
[(31、)、(32、)、(33、)]
[( 'p'、 's')、( 'y' 、 'h')、( 't'、 'e')、( 'h'、 'l')、( 'o'、 'l')]
読者が上記のプログラムと対応する出力結果を分析する場合、zip()関数を使用して複数のシーケンスを「圧縮」すると、各シーケンスの最初の要素、2番目の要素がそれぞれ取得されることを見つけるのは難しくありません... n個の要素。それぞれが新しいタプルを形成します。複数のシーケンスの要素数に一貫性がない場合、圧縮は最短のシーケンスに基づいて行われることに注意してください。
さらに、zip()関数によって返されたzipオブジェクトについては、上記のプログラムのようにトラバースして保存されたタプルを抽出できます。または、次のプログラムのようにlist()関数を呼び出して、zip()オブジェクトを強制的にリストに変換できます。 :
- my_listという= [ 11 、12 、13 ]
- my_tuple = (21 、22 、23 )
- 印刷(リスト(zip (my_list 、my_tuple )))
プログラムの実行結果は次のとおりです。
[(11、21)、(12、22)、(13、23)]