Jam*_*hon 176 python loops for-loop range
没有这个可以做以下i吗?
for i in range(some_number):
# do something
Run Code Online (Sandbox Code Playgroud)
如果你只是想做N次,并且不需要迭代器.
Unk*_*own 97
在我的头顶,没有.
我认为你能做的最好的是这样的:
def loop(f,n):
for i in xrange(n): f()
loop(lambda: <insert expression here>, 5)
Run Code Online (Sandbox Code Playgroud)
但我认为你可以忍受额外的i变量.
这是使用_变量的选项,实际上,它只是另一个变量.
for _ in range(n):
do_something()
Run Code Online (Sandbox Code Playgroud)
请注意,_分配了交互式python会话中返回的最后一个结果:
>>> 1+2
3
>>> _
3
Run Code Online (Sandbox Code Playgroud)
出于这个原因,我不会以这种方式使用它.我不知道Ryan提到的任何成语.它会弄乱你的口译员.
>>> for _ in xrange(10): pass
...
>>> _
9
>>> 1+2
3
>>> _
9
Run Code Online (Sandbox Code Playgroud)
根据Python语法,它是一个可接受的变量名称:
identifier ::= (letter|"_") (letter | digit | "_")*
Run Code Online (Sandbox Code Playgroud)
Ale*_*lli 69
你可能正在寻找
for _ in itertools.repeat(None, times): ...
Run Code Online (Sandbox Code Playgroud)
这是times在Python中迭代次数的最快方法.
Rya*_*yan 56
分配给未使用的值的一般习惯用法是命名它_.
for _ in range(times):
do_stuff()
Run Code Online (Sandbox Code Playgroud)
Ign*_*ams 18
每个人建议你使用_并不是说_经常被用作其中一个gettext函数的快捷方式,所以如果你想让你的软件以多种语言提供,那么你最好避免使用它用于其他目的.
import gettext
gettext.bindtextdomain('myapplication', '/path/to/my/language/directory')
gettext.textdomain('myapplication')
_ = gettext.gettext
# ...
print _('This is a translatable string.')
Run Code Online (Sandbox Code Playgroud)
class Counter(object):
def __init__(self, val):
self.val = val
def __nonzero__(self):
self.val -= 1
return self.val >= 0
__bool__ = __nonzero__ # Alias to Py3 name to make code work unchanged on Py2 and Py3
x = Counter(5)
while x:
# Do something
pass
Run Code Online (Sandbox Code Playgroud)
我想知道标准库中是否有这样的东西?