你可以这样编写一个生成器repeat
:
def repeat(times, func, *args, **kwargs):
for _ in xrange(times):
yield func(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
然后:
list(repeat(100, foo))
Run Code Online (Sandbox Code Playgroud)
它还接受要传递给函数的参数,因此您可以:
from random import randint
list(repeat(100, randint, 1, 100)) # 100 random ints between 1 and 100
Run Code Online (Sandbox Code Playgroud)
因为它是一个生成器,你可以将它管道化为任何类型的迭代,无论是list
(如此处)还是a tuple
或a set
,或者在理解或循环中使用它.
恐怕你不会得到它比Python中的任何漂亮,但有些人会建议对_
一个"匿名"的变量.这是Python的成语做你想要什么.
(该_
可被视为混乱新手,因为它可以被误认为是特殊的语法.我用它,但只是在我的代码的"专家部分".我也遇到它越来越频繁,但舆论还是显得有点分歧这个.)