2つの異なるリストからそれぞれ1つの要素を取得し、それらをペアにして新しいリストに入れる方法を考えたことはありませんか?この概念は、興味深いことは別として、多くの専門分野で非常に役立ちます。次の順序でPythonのzip関数を紹介しましょう。
PythonのZip関数
zip()関数は組み込み関数であり、任意の数の反復可能オブジェクトを受け取り、タプルのリストを返します。タプルのi番目の要素は、各反復可能オブジェクトのi番目の要素を使用して作成されます。
list_A = [1、2、3、4] listB = ['a'、 'b'、 'c'、 'd'] zl = zip(listA、listB)print zl
出力:
[(1、 ‘a’)、(2、 ‘b’)、(3、 ‘c’)、(4、 ‘d’)]
Python3でのZip
Python 3では、上記のコードを実行しても同じ結果は得られません。代わりに、次のようになります。
やってみよう!
これは、zipメソッドがリストではなくzipオブジェクトを返すためです。このzipオブジェクトはイテレータです。つまり、すべてのコンテナから値をマップした単一のイテレータオブジェクトを返します。したがって、値を取得するには、zl(上記のコードから)をlist、set、またはその他に変換します。
listA = [1、2、3、4] listB = ['a'、 'b'、 'c'、 'd'] zl = zip(listA、listB)zl = list(zl)print(zl)
出力:
[(1、 ‘a’)、(2、 ‘b’)、(3、 ‘c’)、(4、 ‘d’)]
Pythonで解凍
解凍とは、圧縮された値を元の状態に戻すことを意味します。これは、「*」演算子を使用して実行されます。したがって、古い値をzip形式のリストzlからlistAとlistBに入れたい場合は、zlを解凍する必要があります。
listA = [1、2、3、4] listB = ['a'、 'b'、 'c'、 'd'] #ziplistAとlistBを1つのリストに入れますzlzl = zip(listA、listB) zl = list(zl)print(zl)#unzip zlそして値をlistAとlistBに戻しますlistA、listB = zip(* zl)print(listA)print(listB)
出力:
[(1、 ‘a’)、(2、 ‘b’)、(3、 ‘c’)、(4、 ‘d’)]
(1、2、3、4)
('あいうえお')
違いを明確に理解するために、2つの新しい変数を取得し、その中に解凍したデータを入れます。
listA = [1、2、3、4] listB = ['a'、 'b'、 'c'、 'd'] zl = zip(listA、listB)zl = list(zl)print(zl)listC、 listD = zip(* zl)print(listC)print(listD)print(listA)print(listB)
出力:
[(1、 ‘a’)、(2、 ‘b’)、(3、 ‘c’)、(4、 ‘d’)]
(1、2、3、4、5)
(「a」、「b」、「c」、「d」、「e」)
[1、2、3、4、5]
[「a」、「b」、「c」、「d」、「e」]
ご覧のとおり、listAとlistBはリストであり、listCとlistDは出力として表示されるタプルとして表示されます。それが唯一の小さな違いです。
これで、PythonでのこのZip関数の記事は終わりです。概念をよく学んだので、もっと正確に試してみてください。
Javaの例のマーカーインターフェイス
質問がありますか?この「PythonのZip関数」ブログのコメントセクションでそれについて言及してください。できるだけ早くご連絡いたします。
Pythonとそのさまざまなアプリケーションについての深い知識を得るには、次のことができます。 24時間年中無休のサポートと生涯アクセスを備えたライブオンライントレーニングで。