リストまたはタプルが指定されている場合、forループを介してリストまたはタプルをトラバースできます。このトラバースは反復と呼ばれます。反復は、C / Java言語のループとして理解できます。
Pythonでは、反復はfor…inで実行されますが、Cなどの多くの言語では、反復リストは添え字で実行されます
for s in['A','B','C']: #反復(サイクル)リスト
print(s)>>>
A
B
C
dictの格納はリストの順序で配置されていないため、反復の結果の順序は異なる可能性があります。
d ={'a':1,'b':2,'c':3,}for key in d:print(key)>>> #キーのみを繰り返す
a
c
b
デフォルトでは、dictはキーを繰り返し処理します。値を反復する場合は、d.values()のvalueに使用できます。キーと値を同時に反復する場合は、d.items()のk、vに使用できます。
では、オブジェクトを判断する方法は反復可能なオブジェクトですか?この方法は、コレクションモジュールの反復可能タイプによって判断することです。
from collections import Iterable
isinstance('abc', Iterable) #strが反復可能かどうか
>>> True
isinstance([1,2,3], Iterable) #リストが反復可能かどうか
>>> True
isinstance(123, Iterable) #整数が反復可能かどうか
>>> False
リストのC言語に似た添え字ループを実装したい場合はどうなりますか? Pythonの組み込みの列挙関数は、リストをインデックスと要素のペアに変換できるため、インデックスと要素自体をforループで同時に繰り返すことができます。
for i, value inenumerate(['A','B','C']):print(i, value)>>>0 A
1 B
2 C
Recommended Posts