はじめに
今回は、forループでリストなどの要素を取り出すときに便利なenumerate( )とzip( )について扱います。enuerate( )は要素と同時にインデックスをも取り出したいとき、zip( )は複数のリストから同時に要素を取り出したいときに有用です。
サンプルデータの作成
今回は簡単なリストを2つ作り、このリストからforループで要素を取り出すことを考えることにしましょう。どうぶつたちのリストとくだもののリストをつくります。
list_a=['らくだ','ねこ','うさぎ','ぞう','ぱんだ']
list_b=['みかん','りんご','ばなな','さくらんぼ','ぶどう']
このリストからforループで要素を取り出すことを考えましょう。まずは普通にlist_aからどうぶつたちを取り出してみましょう。
for animal in list_a:
print(animal)
簡単ですね。次に、要素と一緒にインデックスも取り出すことを考えます。
enumerate( )
リストなどから、要素とともにインデックスも取り出す場合はenumerate( )を使います。
for i,animal in enumerate(list_a):
print(i,animal)
zip( )
次に複数のリストから同時に要素を取り出す場合です。ここでは2つのリストから要素を同時に取り出してみましょう。
for animal,fruit in zip(list_a,list_b):
print(animal,'に「',fruit,'」をあげてください')
このように、2つのリストをzip( ) で囲むだけです。ここではリストが2つなので、animal,fruitという繰り返し変数としていますが、3つ以上の場合も同様です。
enumerate( )&zip( )
最後にenumerate( )とzip( )を同時に使う場合をみておきましょう。つまり、複数のリストからの要素の抽出とインデックスの抽出を同時に行いたい場合です。この場合は、複数のリストをzip( )で囲んで、これをenumerate( )で囲みます。
for i,(animal,fruit) in enumerate(zip(list_a,list_b)):
print(i,':',animal,'に「',fruit,'」をあげてください')
注意すべき点は、zipでまとめた要素を受ける繰り返し変数は、( )で囲む、という点です。これを忘れるとエラーとなるので注意してください。
まとめ
いかがでしたか?いずれも割とよく使う処理ですね。簡単ですが、知らないとできないので、覚えておきましょう。今回は簡単でしたね!
コメント