为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

摇曳的蔷薇 2019-08-12 16:21:40
是否可以在没有迭代器变量的情况下为范围循环实现Python?没有这个可以做以下i吗?for i in range(some_number):     # do something如果你只是想做N次,并且不需要迭代器
查看完整描述

3 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

在我的头顶,没有。

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

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+23>>> _3

出于这个原因,我不会以这种方式使用它。我不知道Ryan提到的任何成语。它会弄乱你的口译员。

>>> for _ in xrange(10): pass...>>> _9>>> 1+23>>> _9

根据Python语法,它是一个可接受的变量名称:

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


查看完整回答
反对 回复 2019-08-12
?
慕容森

TA贡献1853条经验 获得超18个赞

你可能正在寻找

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

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


查看完整回答
反对 回复 2019-08-12
?
aluckdog

TA贡献1847条经验 获得超7个赞

分配给未使用的值的一般习惯用法是命名它_

for _ in range(times):
    do_stuff()


查看完整回答
反对 回复 2019-08-12
  • 3 回答
  • 0 关注
  • 474 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信