【Python入門】Pythonのzip関数とは?使い方と活用方法を徹底解説(Python 3.11)

Python

はじめに

Pythonには、リストやタプルなどのデータを組み合わせるための便利な関数が数多く用意されています。その中でも zip関数 は、複数のイテラブルオブジェクトをまとめて処理できる強力な関数です。本記事では、Python 3.11をベースに zip関数の基本構文や活用方法を初心者向けに徹底解説 していきます。

zip関数とは?

zip関数 は、複数のリストやタプルを要素ごとに組み合わせ、新しいイテラブルオブジェクトを作成する関数です。これにより、異なるデータ構造を同時に扱うことが可能になります。

例えば、2つのリストの要素をペアとしてまとめたり、辞書のキーと値を同時に取得したりする際に役立ちます。

zip関数の基本構文

zip(iterable1, iterable2, ...)

引数

  • iterable1, iterable2, ... :リスト、タプル、文字列などのイテラブルオブジェクト

戻り値

  • zip オブジェクト(イテレータ)

この zip オブジェクトは forループlist()関数 で展開して利用します。

zip関数の使用例

例1:リストの要素をペアにする

names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]

paired = list(zip(names, ages))
print(paired)  # [('Alice', 25), ('Bob', 30), ('Charlie', 35)]

例2:複数のリストをループで処理する

for name, age in zip(names, ages):
    print(f"{name} is {age} years old.")

zip関数の応用例

例3:辞書のキーと値を取得

data = {"name": "Alice", "age": 25, "city": "Tokyo"}
keys, values = zip(*data.items())
print(keys)   # ('name', 'age', 'city')
print(values) # ('Alice', 25, 'Tokyo')

例4:数値リストの転置(行列変換)

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
transposed = list(zip(*matrix))
print(transposed)  # [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

まとめ

  • zip関数 は、複数のイテラブルオブジェクトを組み合わせるのに便利
  • forループlist()関数 で展開して使用可能
  • 辞書の処理や行列変換 など、応用の幅が広い

Pythonの zip 関数を活用することで、コードをより簡潔で効率的に書くことができます。ぜひ実際に試してみてください!