9

そのため、別の投稿で次の「悪い」スニペットを見ましたが、私が見た唯一の代替手段は、Python にパッチを当てることです。

for i in xrange(len(something)):
  workwith = something[i]
  # do things with workwith...

この「アンチパターン」を回避するにはどうすればよいですか?

4

5 に答える 5

23

ループ本体のインデックスを知る必要がある場合:

for index, workwith in enumerate(something):
    print "element", index, "is", workwith
于 2009-02-23T18:14:59.790 に答える
22

Pythonicを参照してください

for workwith in something:
    # do things with workwith
于 2009-02-23T18:12:36.207 に答える
12

質問には完全に有効な2 つの 回答があり(それぞれに仮定があります)、質問の作成者はインデックスの運命について通知しなかったため、有効な回答は次のようになります。

インデックスがまったく必要ない場合:

for workwith in something:
    print "element", workwith

インデックスが必要な場合:

for index, workwith in enumerate(something):
    print "element", index, "is", workwith

私の答えが適切でない場合は、コメントしてください。削除します:)

于 2009-02-24T16:54:18.167 に答える
0

例えば:

[workwith(i) for i in something]
于 2009-02-23T18:13:05.113 に答える
-3

とはx? シーケンスまたはイテレータまたは文字列の場合

for i in x:
    workwith = i

うまくいきます。

于 2009-02-23T18:14:03.147 に答える