Is it possible to make a `for` loop without an iterator variable? (How can I make code loop a set number of times?)

for-loop, loops, python, range

Solution

Off the top of my head, no.

I think the best you could do is something like this:

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

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

But I think you can just live with the extra `i` variable.

Here is the option to use the `_` variable, which in reality, is just another variable.

for _ in range(n):
    do_something()

Note that `_` is assigned the last result that returned in an interactive python session:

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

For this reason, I would not use it in this manner. I am unaware of any idiom as mentioned by Ryan. It can mess up your interpreter.

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

And according to Python grammar, it is an acceptable variable name:

identifier ::= (letter|"_") (letter | digit | "_")*

Problem

Is it possible to do following without the `i`? ``` for i in range(some_number): # do something ``` If you just want to do something N amount of times and don't need the iterator.

Original source

Related problems