同じ長さのリストを同時にループするにはzip関数が便利です。ちなみに圧縮するという意味のzipではないので注意が必要です。
zip関数
こんな感じの同じ長さのデータ達があるとします。
データ群
names = ["Suzuki", "Tanaka", "Kato", "Suzuki", "Kato"]
numbers = [5, 2, 4, 5, 1]
print(len(names))
print(len(numbers))
"""
5
5
"""
zip関数を使うと下のようにそれぞれの要素をひとつずつずらしながら表示することができます。
zip関数使用例
for name, number in zip(names, numbers):
print(name, number)
"""
Suzuki 5
Tanaka 2
Kato 4
Suzuki 5
Kato 1
"""
ちなみになぜfor文をfor name, number in zip(names, numbers):
このように書けるかはzip関数の戻り値を展開して表示してみればわかります。
zip関数の戻り値
from pprint import pprint
pprint(list(zip(names, numbers)))
"""
[('Suzuki', 5), ('Tanaka', 2), ('Kato', 4), ('Suzuki', 5), ('Kato', 1)]
"""
要素ごとをまとめたtupleをzip関数が作ってくれていたのでそれをループさせれば
zip関数使用例のように表示させることができたんですね。
以上です、お疲れ様でした。
# 参考