回答:
承知しました。forループ。
for f in pets:
print f
for k,v in enumerate(pets):
など
このような:
for pet in pets :
print(pet)
実際、Pythonにはforeachスタイルのループしかありませんfor
。
これを観察することも興味深い
シーケンスのインデックスを反復処理するには、組み合わせることができますrange()
し、len()
次の通り:
a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in range(len(a)):
print(i, a[i])
出力
0 Mary
1 had
2 a
3 little
4 lamb
編集#1:別の方法:
シーケンスをループするときに、enumerate()
関数を使用して、位置インデックスと対応する値を同時に取得できます。
for i, v in enumerate(['tic', 'tac', 'toe']):
print(i, v)
出力
0 tic
1 tac
2 toe
更新された回答についてはforEach
、Pythonで関数を簡単に構築できます。
def forEach(list, function):
for i, v in enumerate(list):
function(v, i, list)
あなたもこれを適応させることができmap
、reduce
、filter
、他の言語またはprecedenceから、他の配列関数を使用すると、オーバー持参したいと思います。forループは十分高速ですが、ボイラープレートはforEach
他の機能よりも長くなります。また、listを拡張して、クラスへのローカルポインターを使用してこれらの関数を作成し、リストで直接呼び出すこともできます。
上記の答えは有効ですが、dict {key:value}を反復している場合、これが私が使用するアプローチです。
for key, value in Dictionary.items():
print(key, value)
したがって、辞書のすべてのキーと値を文字列化するようなことをしたい場合は、次のようにします。
stringified_dictionary = {}
for key, value in Dictionary.items():
stringified_dictionary.update({str(key): str(value)})
return stringified_dictionary
これにより、このタイプの反復を適用するときの突然変異の問題が回避されます。これは、私の経験で(時々)不安定な動作を引き起こす可能性があります。
copy
ように-あなたは辞書を操作することができるように(あなたのコピーが前に何らかの変更にすべてのキーと値のものであろうが)反復中に、辞書のfor key, value in Dictionary.copy().items()