¿Es posible hacer un bucle `for` sin una variable iteradora? (¿Cómo puedo hacer que el código se repita un número determinado de veces?)

Resuelto James McMahon asked hace 15 años • 16 respuestas

¿ Es posible hacer lo siguiente sin i?

for i in range(some_number):
    # do something

Si solo desea hacer algo N cantidad de veces y no necesita el iterador.

James McMahon avatar May 04 '09 12:05 James McMahon
Aceptado

Fuera de mi cabeza, no.

Creo que lo mejor que puedes hacer es algo como esto:

def loop(f,n):
    for i in xrange(n): f()

loop(lambda: <insert expression here>, 5)

Pero creo que puedes vivir con la ivariable adicional.

Aquí está la opción de usar la _variable, que en realidad es una variable más.

for _ in range(n):
    do_something()

Tenga en cuenta que _se le asigna el último resultado que se devolvió en una sesión interactiva de Python:

>>> 1+2
3
>>> _
3

Por esta razón no lo usaría de esta manera. No conozco ningún modismo mencionado por Ryan. Puede arruinar a su intérprete.

>>> for _ in xrange(10): pass
...
>>> _
9
>>> 1+2
3
>>> _
9

Y según la gramática de Python , es un nombre de variable aceptable:

identifier ::= (letter|"_") (letter | digit | "_")*
Unknown avatar May 04 '2009 05:05 Unknown

usted puede estar buscando

for _ in itertools.repeat(None, times): ...

esta es LA forma más rápida de iterar timestiempos en Python.

Alex Martelli avatar May 04 '2009 05:05 Alex Martelli