在Ruby中,我可以这样说:
Array.new(5) {|i| SomeClass.new }
# => [#<SomeClass:0x00007fb9bf053ba8>, #<SomeClass:0x00007fb9bf053b80>, #<SomeClass:0x00007fb9bf053b58>, #<SomeClass:0x00007fb9bf053b30>, #<SomeClass:0x00007fb9bf053b08>]
python中是否有等效的语法?
编辑:
不是this的重复项,因为此问题要求使用相同的语法并询问如何使用匿名函数(或类似函数)生成列表,而不是如何构建空列表。
答案 0 :(得分:1)
您可以为此使用列表理解:
[SomeClass() for _ in range(5)]
或者如果您的用例允许,则可以使用以下方法获得迭代器:
map(lambda _: SomeClass(), range(5))