Python列表生成:强制新对象

时间:2015-03-03 12:24:00

标签: python list

Python中有没有办法在创建列表时强制生成新对象?

假设我有一个类Test,我希望在列表中存储5个对象 我使用以下代码生成列表:

myList = [Test()] * 5

使用此代码,python只创建1个Object,存储5次。

当然我可以使用for循环来生成列表。但是在我的真实程序中,这会极大地破坏代码,因为我有大约30个列表,它们部分嵌套在另一个列表中。

那么是否有一种快速的方式(可能是一个单行)强制python在每个条目中生成一个新的对象?

1 个答案:

答案 0 :(得分:8)

使用list comprehension多次执行表达式:

myList = [Test() for _ in range(5)]

由于这会忽略range()生成的索引,因此我将for循环目标_命名为signal the variable is ignored;这只是一个命名惯例。