Pythonのzip()関数は、複数のイテラブル(リスト、タプル、セットなど)から要素を取り出し、対応する要素をペアとしてまとめるために使用されます。まとめられた要素はタプルとして返されます。
基本的な使い方
以下に、具体的なコード例を交えながらzip()関数の使い方を解説します。
numbers = [1, 2, 3, 4, 5]
letters = ['A', 'B', 'C', 'D', 'E']
combined = zip(numbers, letters)
print(list(combined)) # [(1, 'A'), (2, 'B'), (3, 'C'), (4, 'D'), (5, 'E')]
上記の例では、numbersとlettersという2つのリストをzip()関数で結合しています。zip()関数の結果はイテラブルなオブジェクトであるため、list()関数でリストに変換して表示しています。zip()関数によって、numbersとlettersの対応する要素がタプルのペアとしてまとめられています。
異なる長さのリストを扱う
zip()関数は、対応する要素をペアとしてまとめる際に、最短のイテラブルの要素数に合わせて動作します。そのため、要素数が異なるリストを扱う場合でも問題ありません。
numbers = [1, 2, 3, 4, 5]
letters = ['A', 'B', 'C']
combined = zip(numbers, letters)
print(list(combined)) # [(1, 'A'), (2, 'B'), (3, 'C')]
上記の例では、lettersリストの要素数がnumbersリストの要素数よりも少ないという点です。そのため、lettersリストの最後の要素は無視されます。
forループでの使用
zip()関数をforループで使用することで、対応する要素を同時に取り出すことができます。
numbers = [1, 2, 3]
letters = ['A', 'B', 'C']
symbols = ['!', '@', '#']
for num, let, sym in zip(numbers, letters, symbols):
print(num, let, sym) # 1 A ! 2 B @ 3 C #
上記の例では、numbers、letters、symbolsという3つのリストから要素を取り出しています。num、let、symのように複数の変数を使って対応する要素を受け取ることができます。
以上、Pythonのzip()関数についての基本的な使い方を解説しました。この関数は複数のイテラブルなオブジェクトの要素を結合し、対応する要素をまとめるために便利です。.