10

この for ループは何for party in feed.entryを意味し、実際にどのように機能するのでしょうか?

for party in feed.entry:
    print(party.location.address.text)

(私は C++ スタイルの for ループに慣れていますが、Python のループには戸惑いました。)

4

8 に答える 8

25

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
于 2009-08-18T06:53:46.040 に答える
6

feed.entry は反復を可能にするものであり、何らかのタイプのオブジェクトを含みます。これは、c++ とほぼ同じです。

for (feed::iterator party = feed.entry.begin(); party != feed.entry.end(); ++party) {
   cout << (*party).location.address.text;
}
于 2009-08-18T06:50:53.207 に答える
5

以前の回答に私の0.05$を追加するには、組み込み関数の列挙も確認することをお勧めします

for i, season in enumerate(['Spring', 'Summer', 'Fall', 'Winter']):
    print i, season

0 Spring
1 Summer
2 Fall
3 Winter
于 2009-08-18T07:45:23.660 に答える
4

partyは単純に反復可能なfeed.entryを反復処理し ます

Dive into Pythonの説明をご覧ください。

于 2009-08-18T06:54:10.690 に答える
1

Python では bucle は C/C++ のものとは異なり、PHP のforeachに最も似ています。あなたがすることは、「(初期化;条件;インクリメント)」でしばらく繰り返すのではなく、リスト内の各要素を単純に繰り返します(文字列はリストのようにITERABLEです)。

例えば:

for number in range(5):
    print number

出力します

0
1
2
3
4
于 2009-08-18T07:20:36.313 に答える
0

Python のforループは、プロトコルiteratorsを実装する必要がある で動作します。iterator詳細については、次を参照してください。

于 2009-08-18T10:02:07.207 に答える