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

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

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

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

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

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

本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。

→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説

なお、その他のPythonの記事についてはこちらにまとめています。

目次

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関数の使い方を忘れてしまったら、この記事を思い出してくださいね。

この記事を書いた人

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。

目次