2つのリストの要素を並行して取得しつつ処理したい場合、zip()
関数を用いる。
1 2 3 4 5 6 7 8 9 10 |
names = ['Jane', 'Bill', 'Lucy', 'Amanda'] ages = [34, 18, 25, 44] for name, age in zip(names, ages): print("{} is {} years old.".format(name, age)) # Jane is 34 years old. # Bill is 18 years old. # Lucy is 25 years old. # Amanda is 44 years old. |
zip()関数は、引数で与えた複数のコレクションの要素が対になったタプルのイテレーターを返す。各コレクションの長さが異なる場合、イテレーターの長さは最も短いコレクションの長さとなり、それ以降の各コレクションの要素は無視される。
1 2 3 4 5 6 7 8 9 10 11 12 |
lst1 = ['A', 'B', 'C'] lst3 = ['zero', 'one', 'two', 'three'] lst2 = [0, 1, 2, 3, 4] z = zip(lst1, lst2, lst3) for t in z: print(t) # ('A', 0, 'zero') # ('B', 1, 'one') # ('C', 2, 'two') |