创建不同对象的列表副本

马克·科里根(Mark Corrigan)

如果有一个对象列表

for i in range(0,10):
 listA.append(foo(i))

如何复制listAlistB这样的对象中,使它们具有相同的属性,但每个列表中的对象都不相同。这样,如果我这样做

listA[5].bar = 1

这不会修改 listB[5].bar

我的目的是生成对象初始列表的多个副本,并能够对每个列表对象进行操作,因为它们是它们自己的实例。

Drumhellerb

您可以使用进行所需的操作deepcopy

这是一个例子:

import copy

listA = [1,2,3,4]
listB = copy.deepcopy(listA)

listB[0] = 7

print("List A: {}".format(listA)) # List A: [1,2,3,4]
print("List B: {}".format(listB)) # List B: [7,2,3,4]

这将创建一个全新的列表listB,其值与相同listA

执行简单分配时,例如:

listA = [1,2,3,4]
listB = listA
print(listA is listB) # True

这将打印TruelistAlistB引用相同的对象。

Adeepcopy将创建一个新对象:

import copy

listA = [1,2,3,4]
listB = copy.deepcopy(listA)
print(listA is listB) # False

或者,您可以使用list构造函数创建一个新列表

listA = [1,2,3,4]
listB = list(listA)
print(listA is listB) # False

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何创建具有不同引用的相同对象的副本?

如何从json创建具有不同对象类型的列表

连接不同对象的列表

不同对象的映射列表

创建模型的不同对象

如何创建相同对象的副本(例如标签)?

如何创建使用具有使用Java流性质不同的对象列表中不同对象的列表

如何获得从对象列表的属性中提取的不同对象?

对具有不同对象的数组列表进行排序

解析包含不同对象列表的JSON文件

根据属性值检索列表中的不同对象

如何合并两个不同对象的列表?

如何使方法适用于不同对象的列表?

如何在python中打印不同对象的列表?

如何合并两个不同对象的列表?

如何使用 Codable 解析不同对象列表的 Json 数组?

xmlSerialize不同对象的两个列表

工厂创建相同界面的不同对象

我想创建不同对象的共享 ptr 向量

通过从列表中删除一个对象(具有重复对象的不同对象)来创建新的非重复列表

如何对每个索引使用相同对象但副本不同的Array.fill()?

比较不同对象的列表并使用Stream在java8中构建新的对象列表

C#采用两个不同对象的列表来构造新的对象列表

按名称比较两个对象列表并获取不同对象的列表

recyclerview中的不同对象

列表中的相同对象

如何在 Swagger 中创建包含不同级别的不同对象的 API 定义?

获取列表<字符串>而CONCAT 3流来自不同对象的列表

比较2个具有不同对象的列表Java返回不匹配的列表