我想要这个:
[foo() for _ in xrange (100)]
但更漂亮。 ?
最佳答案
你可以像这样写一个生成器repeat
:
def repeat(times, func, *args, **kwargs):
for _ in xrange(times):
yield func(*args, **kwargs)
然后:
list(repeat(100, foo))
它还接受传递给函数的参数,因此您可以:
from random import randint
list(repeat(100, randint, 1, 100)) # 100 random ints between 1 and 100
因为它是一个生成器,您可以将它导入任何类型的可迭代对象,无论是 list
(如此处)还是 tuple
或 set
,或在理解或循环中使用它。
关于python - 通过重复应用函数创建列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6683449/