gpt4 book ai didi

python - 创建不同对象的列表副本

转载 作者:行者123 更新时间:2023-12-01 02:23:06 25 4
gpt4 key购买 nike

如果 a 有一个对象列表

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

如何将 listA 复制到 listB 中,以使对象具有相同的属性,但每个列表中的对象不是相同的对象。这样如果我这样做

listA[5].bar = 1

这不会修改listB[5].bar的值

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

最佳答案

您可以使用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

这将打印 True,因为 listAlistB 引用同一个对象。

deepcopy 将创建一个新对象:

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

关于python - 创建不同对象的列表副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47742258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com