Pythonの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 = [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つのリストから要素を取り出しています。zip()関数をforループで使用することで、対応する要素を同時に取り出すことができます。
zip()関数は、イテラブルなオブジェクトを組み合わせることができる点が挙げられます。リストだけでなく、タプルやセットなどのイテラブルなオブジェクトを組み合わせることも可能です。
words = ['Hello', 'World']
letters = [list(word) for word in words]
combined = zip(*letters)
result = ''.join([''.join(pair) for pair in combined])
print(result) # 'HWoerllod'
この例では、wordsという文字列のリストがあります。まず、lettersという新しいリストを作成します。このリストは、各文字列を文字のリストに分割したものです。次に、zip(*letters)としてzip()関数を使用しています。*演算子を使うことで、lettersリストを展開して、各リストの要素を対応するものとして組み合わせます。
以上がPythonのzip()関数の基本的な使い方と具体的なコード例です。zip()関数は複数のイテラブルなオブジェクトの要素を結合し、対応する要素をまとめるために便利です。.