この for ループは何for party in feed.entry
を意味し、実際にどのように機能するのでしょうか?
for party in feed.entry:
print(party.location.address.text)
(私は C++ スタイルの for ループに慣れていますが、Python のループには戸惑いました。)
feed.entry は feed のプロパティであり、その値は (そうでない場合、このコードは失敗します) 反復プロトコルを実装するオブジェクト (配列など) であり、反復子オブジェクトを返すiterメソッドがあります
イテレータには next() メソッドがあり、次の要素を返すか例外を発生させるため、python for ループは実際には次のようになります。
iterator = feed.entry.__iter__()
while True:
try:
party = iterator.next()
except StopIteration:
# StopIteration exception is raised after last element
break
# loop code
print party.location.address.text
feed.entry は反復を可能にするものであり、何らかのタイプのオブジェクトを含みます。これは、c++ とほぼ同じです。
for (feed::iterator party = feed.entry.begin(); party != feed.entry.end(); ++party) {
cout << (*party).location.address.text;
}
以前の回答に私の0.05$を追加するには、組み込み関数の列挙も確認することをお勧めします
for i, season in enumerate(['Spring', 'Summer', 'Fall', 'Winter']):
print i, season
0 Spring
1 Summer
2 Fall
3 Winter
partyは単純に反復可能なfeed.entryを反復処理し ます
Dive into Pythonの説明をご覧ください。
Python では、 bucle は C/C++ のものとは異なり、PHP のforeachに最も似ています。あなたがすることは、「(初期化;条件;インクリメント)」でしばらく繰り返すのではなく、リスト内の各要素を単純に繰り返します(文字列はリストのようにITERABLEです)。
例えば:
for number in range(5):
print number
出力します
0
1
2
3
4
Python のfor
ループは、プロトコルiterators
を実装する必要がある で動作します。iterator
詳細については、次を参照してください。