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)

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

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

最後に、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))

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