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

公開日:2018-11-13
最終更新:2018-11-13
※この記事は外部サイト(https://qiita.com/wakame1367/items/8ff13e1...)からのクロス投稿です

同じ長さのリストを同時にループするには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関数使用例のように表示させることができたんですね。

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

参考

記事が少しでもいいなと思ったらクラップを送ってみよう!
18
+1
@jNBYlY7Lp0gnnmucの技術ブログ

よく一緒に読まれている記事

0件のコメント

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

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする