【Python入門】zip()関数で複数シーケンスの要素をまとめよう

タイトル 【Python入門】zip() 複数 シーケンス 取得 Python

zip()関数の基本的な使い方について紹介します。
zip()関数は複数のシーケンスから順番に要素を取得します。

たとえば以下のlistがあるとします。

first_name = ['ichiro', 'jiro', 'saburo']
last_name = ['sato', 'suzuki', 'tanaka']

この2つのlistを順番に組み合わせて「ichiro sato」のように名前と苗字を組み合わせることを簡単にやってくれるのがzip()関数です。

zip()関数の動作検証

first_name = ['ichiro', 'jiro', 'saburo']
last_name = ['sato', 'suzuki', 'tanaka']

for f, l in zip(first_name, last_name):
    print(f, l)
python zip 使い方

やり方は簡単でfor文の中でzip(シーケンス1, シーケンス2)と指定するだけです。
上記の例のように名前と苗字を組み合わせて出力することができました。

また、zip内に指定するシーケンスは3つ以上でも可能です。
ここではmiddle_nameというlistもzip()でまとめています。

python zip 複数シーケンス

シーケンスごとに要素数が異なる場合は、最小の要素数でループ処理が実行されます。
ループ処理を実行し、要素がなくなったシーケンスが存在するとループは終了します。
以下の例ではlast_nameの要素が3つなので他のlistに追加した要素は無視され出力されません。

python zip シーケンスごとに要素数が異なる場合

最後に、zip()したものをlistにまとめることもできるので紹介します。

first_name = ['ichiro', 'jiro', 'saburo']
last_name = ['sato', 'suzuki', 'tanaka']
middle_name = ['Edward', 'Lee', 'Michael']

list(zip(first_name, middle_name, last_name))
python zipした結果をlist化

コメント

タイトルとURLをコピーしました