LoginSignup
4
2

More than 3 years have passed since last update.

pythonのzip関数の使い方

Last updated at Posted at 2020-08-27

Qiita初投稿です。
優しく見守ってくれるとありがたいです。
大学の研究でpythonを扱うことになり、プログラミングを一度も触ったこともなかった僕が躓いたことや学習したことを忘れた時の為にアウトプットをしようと思いました。
誰かのお役になれたら幸いです。

python zip関数ってなんで使うの?

pythonを学習してきてzip関数が出てきたのですが、初めて見た時は「なんだこれ」となりました。調べてみると

「zip関数は複数のリストを同時に取得したい場合に使用する関数です。」https://www.sejuku.net/blog/66268

ふむふむ…僕には難しいです。とりあえず、複数のリストを同時に取得できるのか…でも、実際どんな時に使えて何がいいのかわからない!というわけで自分なりにzip関数のいいところを考えてきました。
自分の感覚的にzip関数はコードを簡略化できるところなのかなと思うので、実際に実行したい問題に対してzip関数を使う場合と使わない場合について書きたいと思います。

問題

各人物の名前と性別とどこに住んでいるのかを一度に知りたい。
※各人物の名前と性別とどこに住んでいるのかはもう用意してあると仮定します。

zip関数を使わない。

zip関数を使わないでコードを書こうとするとこうなります。

no_zip.py
name = ['Noah','Emma','James']
gender = ['men','woman','men']
address = ['tokyo','chiba','nagoya']

for i in range(len(name)):
    print(name[i],gender[i],address[i])

出力が

Noah men tokyo
Emma woman chiba
James men nagoya

となります。
まず、配列を作りfor文で変数nameの数だけ(0~2)を回してあげます。そのためほかの変数gender,addressも対応する要素を出力します。

zip関数を使う。

次にzip関数を扱った場合です。

yes_zip.py
name = ['Noah','Emma','James']
gender = ['men','woman','men']
address = ['tokyo','chiba','nagoya']

for n,g,a in zip(name,gender,address):
    print(n,g,a)

出力が

Noah men tokyo
Emma woman chiba
James men nagoya

となります。
変わったところはfor文のところかと思います。zip関数のところのnameでは配列の一番最初のところである'Noah'をピックアップしてnにいれ、gebderでも最初の'men'をピックアップをしてgに入れています。つまり、zip関数は「二つ以上のリストのインデックスを取得」することができます。

コードを見て直感的にわかりやすいのはzip関数なのではないかと思います。

今回使ったコードは
https://github.com/Kimiaki619/zip-/blob/master/zip.ipynb
に乗せてあります。

最後に

Qiita初投稿で、今までブログなどの情報発信をしたことがないためわかりにくい文章になっているかもしれません。
これから、情報発信をしていき文章力をつけていきたいと思います、また技術で遊べる人間になるのが僕の夢なので温かい目で見守っててください。
これから、よろしくお願いします。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2