【毎日Python】Pythonで複数のリストの要素をまとめて取得する方法|zip

zip
こつこつPython

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)]

関連メソッド

【毎日Python】Pythonでインデックスと値をセットで取得する方法|enumerate

【毎日Python】Pythonで辞書型データを作成する方法|dict

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト