[Python]zip()をforループで使う

python

Pythonの組み込み関数であるzip関数について紹介していきます。

zip関数、一言で言うと…

複数のlistやタプルを合体し、それを返します。

さくっと見ていきます。

例えば、人とスコアの二つのlistがあるとして、そのリストの要素を合わせたものを作ってみます。

names = ['Mike', 'Jane', 'Bob']
scores = [90,95,100]

for(name,score) in zip(names,scores):
    print(name,score)

Mike 90
Jane 95
Bob 100

要素数が違う場合はどうなる?

それでは二つのlistの要素数が違う場合はどうなるのでしょうか?

その場合は、要素数が少ない方に合わせられます。

names = ['Mike', 'Jane', 'Bob']
scores = [90,95] # 要素を一つ減らした

for(name,score) in zip(names,scores):
    print(name,score)

Mike 90
Jane 95

参考:組み込み関数 zip | Python公式ドキュメント

zip()でタプルを作ってみる

もう少しzip()で遊んでみます。要素数が同じであればタプルを作ることもできます。

簡易な辞書を作ってみます。

japan_words = ['犬', '猫', '鳥']
english_words = ['dog', 'cat', 'bird']
list_tuple = list(zip(japan_words, english_words))
print(list_tuple)
=> [('犬', 'dog'), ('猫', 'cat'), ('鳥', 'bird')]

zip()でdictも作ってみる

タプル以外にもdictもできます。

japan_words = ['犬', '猫', '鳥']
english_words = ['dog', 'cat', 'bird']
dictionary = dict(zip(japan_words, english_words))

print(dictionary)
=> {'犬': 'dog', '猫': 'cat', '鳥': 'bird'}
print(dictionary['犬'])
=> dog


カテゴリー