Python 相当于 Ruby Array 块实例化



在Ruby中,我可以这样说:

Array.new(5) { SomeClass.new }
# => [#<SomeClass:0x00007fb9bf053ba8>, #<SomeClass:0x00007fb9bf053b80>, #<SomeClass:0x00007fb9bf053b58>, #<SomeClass:0x00007fb9bf053b30>, #<SomeClass:0x00007fb9bf053b08>]

python中是否有等效的语法?

编辑:

不是重复的,因为这个问题要求等效的语法,并询问如何使用匿名函数(或类似函数(生成列表,而不是如何构建空列表。

您可以使用列表推导:

[SomeClass() for _ in range(5)]

或者,如果您的用例允许,您可以使用以下方法获取迭代器:

map(lambda _: SomeClass(), range(5))

最新更新