可以不带i来做下面的事情吗?

for i in range(some_number):
    # do something

如果你只是想做某件事N次而不需要迭代器。


当前回答

为未使用的值赋值的一般习惯用法是将其命名为_。

for _ in range(times):
    do_stuff()

其他回答

也许答案取决于你在使用迭代器时遇到了什么问题? 可能会使用

i = 100
while i:
    print i
    i-=1

or

def loop(N, doSomething):
    if not N:
        return
    print doSomething(N)
    loop(N-1, doSomething)

loop(100, lambda a:a)

但坦率地说,我认为使用这种方法没有任何意义

可以使用_11(或任何数字或其他无效标识符)来防止与gettext发生名称冲突。任何时候你使用下划线+无效标识符,你得到一个可以在for循环中使用的虚拟名称。

是什么:

while range(some_number):
    #do something

你可能正在寻找

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

这是Python中迭代次数最快的方法。

#Return first n items of the iterable as a list
list(itertools.islice(iterable, n))

摘自http://docs.python.org/2/library/itertools.html