up:: Python
source:: Pythonのfor文によるループ処理(range, enumerate, zipなど) | note.nkmk.me
forを回すときに便利な関数。
enumerate
インデックスを取得できる関数。インデックスの開始値も設定可能。
インデックスをfor内でいじるとその数に飛んじゃうので注意。
l = ['Alice', 'Bob', 'Charlie']
for name in l:
print(name)
# Alice
# Bob
# Charlie
for i, name in enumerate(l):
print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie
zip
複数リストを一気に回せる関数。3つ以上でも可能。
要素数が合わない場合は少ない方に合わせて終了する。
names = ['Alice', 'Bob', 'Charlie']
ages = [24, 50, 18]
for name, age in zip(names, ages):
print(name, age)
# Alice 24
# Bob 50
# Charlie 18
長い方に合わせる関数も存在する。
また、単体で使うとタプルでまとめたイテレータになる。
names = ['Alice', 'Bob', 'Charlie']
ages = (24, 50, 18)
z = zip(names, ages)
print(z)
print(type(z))
# <zip object at 0x10b57b888>
# <class 'zip'>