zip 関数の使用方法を日本語で教えてください。
Pythonのzip()関数は、複数のイテラブルオブジェクト(リストやタプルなど)をタプルのイテレータにまとめる組込み関数です。最短のイテラブルオブジェクトを基準に、入力イテラブルオブジェクトの要素からなるタプルを要素とするイテレータを返します。
zip()関数の構文は次のとおりです。
zip(*iterables)
イテラブルの一つ、*iterablesは、複数の反復可能オブジェクトを表します。
zip()関数の一般的な使用例は以下のとおりです。
- 複数のリスト/タプルを結合する:複数のリストやタプル中で同じインデックス位置にある要素をまとめて1つのタプルにする。イテラブルオブジェクトの長さが違う場合はzip()関数は最も短いイテラブルオブジェクトの長さに合わせる。
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
result = zip(list1, list2)
print(list(result)) # [(1, 'a'), (2, 'b'), (3, 'c')]
- 反復可能オブジェクトを巡回する:for 循環内で複数の反復可能オブジェクトを同時に順次処理が可能
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
for x, y in zip(list1, list2):
print(x, y)
# 输出:
# 1 a
# 2 b
# 3 c
- 転置行列:zip() 関数を使用して行列を行を列に転置させることができます。
matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
transposed_matrix = list(zip(*matrix))
print(transposed_matrix)
# 输出:
# [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
zip()関数はイテレータを返します。リストとして表示するには、list()関数を使用してリストに変換する必要があります。