what the not and python for-loop anti-patterns

python - the - Alternativa a ''for i in xrange(len(x))''



xrange python 3 (5)

Así que veo en otra publicación el siguiente fragmento "malo", pero las únicas alternativas que he visto implican parches en Python.

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

¿Qué debo hacer para evitar este "antipattern"?


Si necesita saber el índice en el cuerpo del bucle:

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


por ejemplo:

[workwith(i) for i in something]


Ver Pythonic

for workwith in something: # do things with workwith


¿Qué es x ? Si es una secuencia o un iterador o una cadena, entonces

for i in x: workwith = i

funcionará bien


Como hay dos respuestas a la pregunta que son perfectamente válidas (con una suposición de cada una) y el autor de la pregunta no nos informó sobre el destino del índice, la respuesta válida debería ser:

Si no necesita índice en absoluto:

for workwith in something: print "element", workwith

Si necesitas índice :

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

Si mi respuesta no es apropiada, comenten por favor, y la borraré :)