可以不带i来做下面的事情吗?
for i in range(some_number):
# do something
如果你只是想做某件事N次而不需要迭代器。
可以不带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