Python列表生成:强制新对象

0xA*_*ffe 1 python list

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

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

myList = [Test()] * 5
Run Code Online (Sandbox Code Playgroud)

使用此代码,python只创建1个对象,存储5次.

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

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

Mar*_*ers 8

使用列表推导来多次执行表达式:

myList = [Test() for _ in range(5)]
Run Code Online (Sandbox Code Playgroud)

由于这会忽略range()生成的索引,因此我将for循环目标命名_信号,忽略变量 ; 这只是一个命名约定.

  • @ 0xAffe它就是一种非正式的方式:"我不打算使用这个变量" /sf/ask/412521441/ -蟒蛇 (2认同)