python - 是否可以在没有迭代器变量的情况下实现 Python for range 循环?

没有i也可以跟随吗?

for i in range(some_number):
    # do something

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

最佳答案

在我的脑海中,没有。

我认为你能做的最好的事情是这样的:

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

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

但我认为你可以忍受额外的 i 变量。

这里是使用 _ 变量的选项,实际上它只是另一个变量。

for _ in range(n):
    do_something()

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

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

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

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

根据 Python grammar ,这是一个可接受的变量名:

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

https://stackoverflow.com/questions/818828/

相关文章:

linux - 如何更改 bash 历史完成以完成已经上线的内容?

python - 使用 groupby 获取组中具有最大值的行

bash - 为什么 $$ 返回与父进程相同的 id?

linux - 否定 bash 脚本中的 if 条件

python - 为什么提早返回比其他方法慢?

linux - 在管道 grep 到 grep 后保留颜色

python - 什么是 "first-class"对象?

python - Python 2 如何比较字符串和整数?为什么列表比较大于数字,而元组大于列表?

python - 在列表中查找属性等于某个值的对象(满足任何条件)

linux - 如何请求文件但不使用 Wget 保存?