BETA

同じ長さのリストを同時にループするにはzip関数が便利

投稿日:2018-11-13
最終更新:2018-11-13

同じ長さのリストを同時にループするにはzip関数が便利です。ちなみに圧縮するという意味のzipではないので注意が必要です。

zip関数

こんな感じの同じ長さのデータ達があるとします。

names = ["Suzuki", "Tanaka", "Kato", "Suzuki", "Kato"]
numbers = [5, 2, 4, 5, 1]

print(len(names))
print(len(numbers))

"""
5
5
"""

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関数の戻り値を展開して表示してみればわかります。

from pprint import pprint

pprint(list(zip(names, numbers)))

"""
[('Suzuki', 5), ('Tanaka', 2), ('Kato', 4), ('Suzuki', 5), ('Kato', 1)]
"""

要素ごとをまとめたtupleをzip関数が作ってくれていたのでそれをループさせれば zip関数使用例のように表示させることができたんですね。

以上です、お疲れ様でした。

参考

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@jNBYlY7Lp0gnnmucの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう