是否可以在没有迭代器变量的情况下实现范围循环的Python?

问题:

有可能做到这一点吗

for i in range(some_number):
    #do something

没有我?如果你只想做一些事情x次,不需要迭代器。

回答:

在我的头顶,没有。
我认为你能做的最好的就是这样:

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

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

但是我认为你可以使用额外的i变量。
这是使用_变量的选项,实际上这只是另一个变量。

for _ in range(n):
    do_something()

请注意,_被分配在交互式python会话中返回的最后一个结果:

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

因此,我不会以这种方式使用它。我不知道Ryan提到的任何成语。它可以弄乱您的口译员。

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

根据python grammar,它是一个可以接受的变量名:

identifier :: =(letter |“_”)(letter | digit |“_”)*

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Is it possible to implement a Python for range loop without an iterator variable?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 45 = 52