Python 从字典中获取值,而不链接到内存位置
在Python 3.4中,我试图从字典中检索一个值,对其进行更改并将其用于程序中的其他地方,但我发现字典显示了以下行为:Python 从字典中获取值,而不链接到内存位置,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,在Python 3.4中,我试图从字典中检索一个值,对其进行更改并将其用于程序中的其他地方,但我发现字典显示了以下行为: >>> D = {"A":[1,2,3]} >>> C = D["A"] >>> C.append(4) >>> D["A"] [1, 2, 3, 4] >>> F = D.get("A") >>> F.append(5) >>> D["A"] [1,
>>> D = {"A":[1,2,3]}
>>> C = D["A"]
>>> C.append(4)
>>> D["A"]
[1, 2, 3, 4]
>>> F = D.get("A")
>>> F.append(5)
>>> D["A"]
[1, 2, 3, 4, 5]
有没有一种方法可以解决这个问题,这样我就可以将字典中的值赋给变量,而不用像这样链接它们 字典不保留对象值,只保留对对象的引用 您需要将列表的一个副本分配给另一个变量名,您可以使用
[:]
创建一个浅表副本:
>>> D = {"A":[1,2,3]}
>>> C = D["A"][:]
>>> C.append(4)
>>> D["A"]
[1, 2, 3]
或者使用复制模块:
>>> import copy
>>> C = copy.copy(D["A"])
>>> C.append(4)
>>> D["A"]
[1, 2, 3]
一个非常简单的解决方案是使用[:]
在字典中复制列表,然后使用它
范例-
>>> D = {"A":[1,2,3]}
>>> C = D["A"][:]
>>> C.append(4)
>>> C
[1, 2, 3, 4]
>>> D["A"]
[1, 2, 3]
请注意,这将复制列表。复制列表是否足够?