ブログまん

今回はpythonのzip関数について簡単に説明していきます!

筆者について(about me)

私は普段、理系大学生をしており、物理を専攻しております。その中で大学2年生のときに python に触れ、その面白さに魅了されました。その後は主に python を使った deep learning を趣味として始め、様々な開発を行っております。その際にでたエラーなどの解決方法をこの What’s this ブログで詳しく解説しています。

zip関数

zip関数とは上の画像のように、2つの分かれたものを組み合わせる関数のことを指します。(後述しますが、3つ以上を組み合わせることも可能です。)例を見て詳しく見ていきましょう。

例(example)

class_name = ["1組", "2組", "3組"]
color = ["red", "blue", "green"]

このような2つのリストがあったときに for 文で zip 関数を回すと、この2つのリスト class_name と color を組み合わせることができるのです。このコードの下に for 文を回してみましょう。

for class_name, color in zip(class_name, color):
    print(class_name, color)

#出力
# 1組 red
# 2組 blue
# 3組 green

このように for 分で in の後に zip 関数を書き、統合したいリストを入れると半角スペースで繋ぎ合わしてくれます!

でも、ここで、リストの長さが違う場合はと、気づいたあなたは鋭いです!気になったらコードを書いてみましょう!

class_name = ["1組", "2組", "3組", "4組"]
color = ["red", "blue", "green"]

for class_name, color in zip(class_name, color):
    print(class_name, color)

#出力
# 1組 red
# 2組 blue
# 3組 green

class_name に4組を追加したのにどうでしょう。結果は先ほどと同じになりました。これが意味するところは、統合する際に統合するリストの長さが短い方に合わせて、統合するというとこにあると思います。

では、ここで冒頭に述べた3つ以上のリストについても考えてみましょう!

class_name = ["1組", "2組", "3組", "4組"]
color = ["red", "blue", "green"]
ratio = ["4:3", "3:4", "5:5"]

for class_name, color, ratio in zip(class_name, color, ratio):
    print(class_name, color, ratio)

このよに男女比を書いたリストを作り、for 分で回すと…

#出力
# 1組 red 4:3
# 2組 blue 3:4
# 3組 green 5:5

このように新たに追加されたリストについても統合することができました!

結論(conclusion)

このように、zip関数を用いると、リスト同士をリストに縛られずに統合することが、できます。これを使用すると、違うリストの同じインデックスとの参照などがしやすくなり、データを扱いやすくなります。ぜひ、皆さんも使ってみてください!

Reference

今回は下記の記事を参考に書きました。ありがとうございました!!

https://note.nkmk.me/python-zip-usage-for/