【Python入門】zip関数の使い方をわかりやすく解説!

リストの要素を取得する場合はfor文を使用するのが一般的ですが、複数のリストの要素をまとめて取得したい場合もあります。

「複数のリストの要素をまとめて取得したい」
「複数のリストを結合したい」

そんな方に向けて、この記事ではリストの要素を取得、結合できるzip関数について、以下の内容で解説していきます。

【基礎】zip関数とは
【基礎】zip関数の使い方
【基礎】2つ以上のリストを指定する
【発展】リストをタプルとして結合

この記事ではそんなzip関数についてわかりやすく解説していますので、ぜひ参考にしてください。

zip関数とは

zip関数は複数のリストを同時に取得したい場合に使用する関数です。

zip関数は以下のように引数にインデックスを取得したいリストを指定します。

書き方:

zip(リスト1, リスト2, …)

zip関数を使用することで、リストのインデックス0から順番に取得されていきます。

たとえば、以下のようなリストがあった場合、最初の値100がインデックス番号0となり、1が200、2が300となります。

mylist = [100, 200, 300, 400, 500]

zip関数の使い方

ここからは実際にzip関数の使い方を見ていきましょう。

zip関数はfor文と一緒に使われます。

サンプルプログラム:

names = ['taro', 'hanako', ‘'jiro']
ages = [25, 30, 27]

for name, age in zip(names, ages):
    print(name, age)

実行結果:

taro 25
hanako 30
jiro 27

このサンプルではnameとageの2つのリストzip関数を使用してfor文で同時にインデックスを取得しています。

このようにfor文で使われているzip関数は、引数で指定されたリストのインデックスの値を一緒に返してくれることがわかりますね!

2つ以上のリストを指定する

また、zip関数は2つ以上のリストのインデックスを取得することができます。

以下のサンプルを御覧ください。

サンプルプログラム:

names = ['taro', 'hanako', 'jiro']
ages = [25, 30, 27]
address = ['tokyo', 'nagoya', 'kanagawa']

for name, age, addr in zip(names, ages, address):
    print(name, age, addr)

実行結果:

taro 25 tokyo
hanako 30 nagoya
jiro 27 kanagawa

インデックス数が異なる場合

zip関数で異なるインデックス数を指定した場合は、インデックス数が少ないリストの値が返され、その分の値は処理されません。

サンプルプログラム:

names = ['taro', 'hanako', 'jiro', 'takeshi']
ages = [25, 30, 27]

for name, age in zip(names, ages):
    print(name, age)

実行結果:

taro 25
hanako 30
jiro 27

タプルとして取得したい場合

zip関数はリストのインデックスを同時に取得することができますが、zip関数のタプル(tuple)として取得することもできます。

サンプルプログラム:

names = ['taro', 'hanako', 'jiro', 'takeshi']
ages = [25, 30, 27]

# リストを結合する
tp = zip(names, ages)

# タプルの要素を取得
for val in tp:
    print(val)

実行結果:

('taro', 25)
('hanako', 30)
('jiro', 27)

このようにタプルとして取得することができました!

タプルについては以下の記事でも詳しく解説しています!

まとめ

ここでは、複数のリストの値を一度に取得できるzip関数について以下の内容を解説しました。

  • zip関数とは
  • zip関数の使い方
  • 2つ以上のリストを指定する
  • リストをタプルとして結合

zip関数を使用すれば、複数のリストのインデックスをまとめて取得できたり、結合することができますので非常に便利です。

もし、zip関数の使い方を忘れてしまったら、この記事を思い出してくださいね。

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

ヤマシタ

システムエンジニアとして10年勤務→フリーランスへ。現在は侍ブログ編集部としてこれまでに200記事以上の記事を執筆。
大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。