Pythonで複数のリストの要素を取得する方法です。
使用するのは、Pythonの組み込み関数のzip関数です。
まず、このような2つのリストで試してみましょう。
products = ['apple', 'orange', 'grape']
prices = [100, 200, 300]
zip関数は、for文のループ処理によって適用させることができます。
まず、for文にカウンター変数を指定します。
続けて、inの後にzip関数で、それぞれのリストの変数を指定します。
print関数で実行して、表示させてみましょう。
それぞれのリストの要素の値を、タプルで取得することができました。
このようにzip関数では、インデックスが同じ値がペアとなって、タプルで取得されます。
for i in zip(products, prices):
print(i)
実行結果:
('apple', 100)
('orange', 200)
('grape', 300)
次に、3つのリストで試してみましょう。
一つ目のリストの要素数は、他のリストより1つ多くなっています。
products = ['apple', 'orange', 'grape','banana']
prices = [100, 200, 300]
numbers = [1,2,3]
先ほどと同じように、zip関数の引数に変数を指定して、print関数で実行します。
3つのリストの要素をタプルで取得することができました。
なお、一つ目のリストにおける4つ目の要素は、取得されていないことが確認できます。
このように、取得するリストの要素数が異なる場合、多い分の要素は取得されません。
for item in zip(products, prices,numbers):
print(item)
実行結果:
('apple', 100, 1)
('orange', 200, 2)
('grape', 300, 3)
最後に、各要素をリストで取得する方法をみてみましょう。
list関数の引数に、zip関数でそれぞれのリストの変数を指定します。
実行します。
それぞれの要素をリストで取得することができました。
このようにzip関数は、list関数内でも適用させることができます。
products = ['apple', 'orange', 'grape']
prices = [100, 200, 300]
numbers = [1,2,3]
list(zip(products,prices,numbers))
実行結果:
[('apple', 100, 1), ('orange', 200, 2), ('grape', 300, 3)]