Python相当于Ruby Array块实例化?

时间:2019-02-09 03:21:38

标签: python ruby

在Ruby中,我可以这样说:

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

python中是否有等效的语法?

编辑:

不是this的重复项,因为此问题要求使用相同的语法并询问如何使用匿名函数(或类似函数)生成列表,而不是如何构建空列表。

1 个答案:

答案 0 :(得分:1)

您可以为此使用列表理解:

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

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

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