私はanother postに次の "悪い"スニペットを見ていますが、私が見た唯一の選択肢はPythonのパッチ適用です。'iのxrange(len(x))'の代わりに
for i in xrange(len(something)):
workwith = something[i]
# do things with workwith...
この「反パターン」を避けるにはどうすればよいですか?
私はanother postに次の "悪い"スニペットを見ていますが、私が見た唯一の選択肢はPythonのパッチ適用です。'iのxrange(len(x))'の代わりに
for i in xrange(len(something)):
workwith = something[i]
# do things with workwith...
この「反パターン」を避けるにはどうすればよいですか?
は、例えばPythonic
for workwith in something:
# do things with workwith
を参照してください:
[workwith(i) for i in something]
「何か」はオブジェクトの集合です。元のものからは、「何か」は必ず整数ではなく、「仕事」はまったくコレクションではないということはありません。 'workwith'は、 'something'を持つworkignの一時変数のようです。 – hughdbrown
x
は何?シーケンスまたはイテレータまたは文字列の場合は、
for i in x:
workwith = i
が問題ありません。
SilentGhostの答えが良いです:-) – Xolve
これは最高の答えであるとは思いません。それはkmkaplanの答えの下位バージョンであるようです。 (それはkmkaplanの前に投稿されたことに気がついていますが、一応明らかに優れたものが提案されれば、答えを削除することは可能です)それでも十分にノックダウンされているので、その他。 – ToolmakerSteve
あなたはループ本体内のインデックスを知っておく必要がある場合:
はfor index, workwith in enumerate(something):
print "element", index, "is", workwith
+1:20%の時間、これがあなたが意味することです。 –
があるとして、質問の著者(仮定ごとに)完全に有効です質問へtwoanswersたちを通知しませんでしたインデックスの運命について、有効な回答は次のようになります。
あなたdo not need index全くの場合:
for workwith in something: print "element", workwith
あなたneed index場合:
for index, workwith in enumerate(something): print "element", index, "is", workwith
私の答えが適切でない場合は、してください、コメントすることは、私はそれを削除します:)
+1:いいえ、答えは最も適切であり、実際には最も完全です。 – tzot
1:時間の80%が、これは何です意味した。値を変更しない場合は –
です。 と何かの仕事を考えてみましょう: workwith + = – vartec
@vartec:それは本当ですが、Alamの質問には答えられません。 – kmkaplan