Python 3で2つのリストを並行して反復処理する方法は?

PYTHON3 チュートリアル

Pythonのzip()関数によるリストの同時反復処理

Pythonのzip()関数を用いると、複数のリストやタプルなどのイテラブルオブジェクトを同時に反復処理することができます。この関数は、各イテラブルから要素を一つずつ取り出し、それらをタプルとしてグルーピングします。この機能を使えば、複数のデータセットに対して同時に操作を行うことが簡単にできます。

例1: 2つのリストの要素を同時に処理する

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
for number, letter in zip(list1, list2):
    print(f"{number} is matched with {letter}")

このコードは、list1の各要素とlist2の対応する要素を組み合わせて出力します。出力結果は以下の通りです。

1 is matched with a
2 is matched with b
3 is matched with c

例2: 3つのリストを同時に反復処理する

names = ["Alice", "Bob", "Cathy"]
ages = [25, 30, 35]
jobs = ["Engineer", "Doctor", "Artist"]
for name, age, job in zip(names, ages, jobs):
    print(f"{name} is {age} years old and works as a {job}")

このコードは、3つのリストを同時に反復処理し、各人の名前、年齢、職業を一つの文にまとめて出力します。出力結果は以下の通りです。

Alice is 25 years old and works as an Engineer
Bob is 30 years old and works as a Doctor
Cathy is 35 years old and works as an Artist

例3: リストの長さが異なる場合の処理

fruits = ["apple", "banana", "cherry", "date"]
colors = ["red", "yellow", "purple"]
for fruit, color in zip(fruits, colors):
    print(f"The {fruit} is {color}")

このコード例では、fruitsリストがcolorsリストよりも長いですが、zip()関数は最短のイテラブルの長さに合わせて処理を行います。そのため、’date’に対応する色は出力されません。出力結果は以下の通りです。

The apple is red
The banana is yellow
The cherry is purple

以上の例から、zip()関数は複数のリストを効率的に同時に扱う場合に非常に便利であることがわかります。ただし、イテラブルの長さが異なる場合は、最短の長さに合わせて処理される点に注意が必要です。

購読
通知
0 Comments
Inline Feedbacks
View all comments