[Python]zip()をforループで使う
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