是否有一种 Pythonic 方式来创建克隆项目列表? [复制]
Posted
技术标签:
【中文标题】是否有一种 Pythonic 方式来创建克隆项目列表? [复制]【英文标题】:Is there a Pythonic way to create a list of cloned items? [duplicate] 【发布时间】:2019-01-10 19:15:20 【问题描述】:考虑以下代码:
class SomeClass:
def __init__(self):
self.foo = None
some_list = [SomeClass()] * 5
这段代码的问题是some_list
的所有5 项都引用SomeClass
的同一个实例。如果我做some_list[0].foo = 7
,那么我得到some_list[1].foo
等于7
,等等。
那么如何在一个列表中实例化N
不同的SomeClass
实例呢?
【问题讨论】:
你的标题与你想要的相反 @roganjosh,现在好些了吗? 您正在尝试创建一个类实例列表。至少对我来说,“克隆”意味着对内存中同一对象的引用 【参考方案1】:解决方案:使用列表推导
class SomeClass:
def __init__(self):
self.foo = None
some_list = [SomeClass() for _ in range(5)]
【讨论】:
以上是关于是否有一种 Pythonic 方式来创建克隆项目列表? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
是否有一种优雅的 Pythonic 方式来计算已处理的数据? [复制]
是否有一种 Pythonic 的方式来跳过 for 循环中的 if 语句以使我的代码运行得更快?