Pythonのzip関数の機能は何ですか
Pythonでは、zip()関数は複数の反復可能なオブジェクトを同時に反復処理し、それらのオブジェクトの要素からなるタプルのイテレータを返します。
zip関数には、リスト、タプル、セット、文字列など1つ以上のイテラブルオブジェクトを引数に与えることができます。これらのイテラブルオブジェクトの要素をインデックスの位置でペアリングし、それらの要素から構成されるタプルを生成するイテレータを返します。
例えば、次のようなリストaとbがあるとします。
a = [1, 2, 3]、b = [‘a’, ‘b’, ‘c’]
ジップ関数を使用することで、これらの 2 つのリストはペアで処理できます
c = zip(a, b)
C はイテレータとなり、サイクルを利用して走査します。
c の要素を順に item として、
print(item)
(1, ‘a’)
(2, ‘b’)
(3, ‘c’)
zip() 関数は長さの異なるイテラブルオブジェクトも処理できます。イテラブルオブジェクトの長さが異なる場合、zip() 関数は最も短いイテラブルオブジェクトの長さまでペアリングを行います。たとえば:
aは[1, 2, 3]で、bは[‘a’, ‘b’]です。
c = zip(a, b)
そのとき、cはイテレータになり、生成されたタプルには2つの要素だけがあります。
for item in c:
print(item)
(1, ‘a’)
(2, ‘b’)
zip()関数のイテレータをリストに変換する必要がある場合、list()関数を用いて変換することができます。
c = list(zip(a, b))
cの値は((1, ‘a’), (2, ‘b’))
zip()関数は複数のイテラブルオブジェクトをペアにして、これらのオブジェクトの要素から構成されるタプルを格納したイテレータを返します。