Python中有没有办法在创建列表时强制生成新对象?
假设我有一个类Test
,我希望在列表中存储5个对象
我使用以下代码生成列表:
myList = [Test()] * 5
使用此代码,python只创建1个Object,存储5次。
当然我可以使用for循环来生成列表。但是在我的真实程序中,这会极大地破坏代码,因为我有大约30个列表,它们部分嵌套在另一个列表中。
那么是否有一种快速的方式(可能是一个单行)强制python在每个条目中生成一个新的对象?
答案 0 :(得分:8)
使用list comprehension多次执行表达式:
myList = [Test() for _ in range(5)]
由于这会忽略range()
生成的索引,因此我将for
循环目标_
命名为signal the variable is ignored;这只是一个命名惯例。