如何复制字典并仅在Python中编辑副本?
Python绝不会隐式复制字典或任何对象。因此,当我们设置dict2 = dict1时,我们使它们引用相同的字典对象。因此,即使我们对字典进行了变异,对其的所有引用也会继续引用该对象的当前状态。
dict1 = {"key1": "abc", "key2": "efg"}dict2 = dict1
print(dict1)
print(dict2)
dict2['key2'] = 'pqr'
print(dict1)
print(dict2)
输出结果
{'key1': 'abc', 'key2': 'efg'}{'key1': 'abc', 'key2': 'efg'}
{'key1': 'abc', 'key2': 'pqr'}
{'key1': 'abc', 'key2': 'pqr'}
要复制字典,请使用浅拷贝或深拷贝方法,如以下示例中所述。
使用浅拷贝
dict1 = {"key1": "abc", "key2": "efg"}print(dict1)
dict3 = dict1.copy()
print(dict3)
dict3['key2'] = 'xyz'
print(dict1)
print(dict3)
输出结果
{'key1': 'abc', 'key2': 'efg'}{'key1': 'abc', 'key2': 'efg'}
{'key1': 'abc', 'key2': 'efg'}
{'key1': 'abc', 'key2': 'xyz'}
使用深度复制
import copydict1 = {"key1": "abc", "key2": "efg"}
print(dict1)
dict4 = copy.deepcopy(dict1)
print(dict4)
dict4['key2'] = 'test1'
print(dict4)
print(dict1)
输出结果
{'key1': 'abc', 'key2': 'efg'}{'key1': 'abc', 'key2': 'efg'}
{'key1': 'abc', 'key2': 'test1'}
{'key1': 'abc', 'key2': 'efg'}
以上是 如何复制字典并仅在Python中编辑副本? 的全部内容, 来源链接: utcz.com/z/326276.html