python字典副本
Python never implicitly copies the dictionary or any objects. So, while we set dict2 = dict1, we're making them refer to the same dictionary object. Hence, even when we mutate the dictionary, all the references made to it, keep referring to the object in its current state.
Python絕不會隱式復制字典或任何對象。 因此,當我們設置dict2 = dict1時 ,我們使它們引用相同的字典對象。 因此,即使我們對字典進行了變異,對其的所有引用也會繼續引用該對象的當前狀態。
dict1 = {"key1": "abc", "key2": "efg"}
dict2 = dict1
print(dict1)
print(dict2)
dict2['key2'] = 'pqr'
print(dict1)
print(dict2)
Output
輸出量
{'key1': 'abc', 'key2': 'efg'}
{'key1': 'abc', 'key2': 'efg'}
{'key1': 'abc', 'key2': 'pqr'}
{'key1': 'abc', 'key2': 'pqr'}
To copy a dictionary, either uses a shallow copy or deep copy approach, as explained in the below example.
要復制字典 ,請使用淺層復制或深層復制方法 ,如以下示例中所述。
使用淺拷貝 (Using shallow copy)
dict1 = {"key1": "abc", "key2": "efg"}
print(dict1)
dict3 = dict1.copy()
print(dict3)
dict3['key2'] = 'xyz'
print(dict1)
print(dict3)
Output
輸出量
{'key1': 'abc', 'key2': 'efg'}
{'key1': 'abc', 'key2': 'efg'}
{'key1': 'abc', 'key2': 'efg'}
{'key1': 'abc', 'key2': 'xyz'}
使用深度復制 (Using deep copy)
import copy
dict1 = {"key1": "abc", "key2": "efg"}
print(dict1)
dict4 = copy.deepcopy(dict1)
print(dict4)
dict4['key2'] = 'test1'
print(dict4)
print(dict1)
Output
輸出量
{'key1': 'abc', 'key2': 'efg'}
{'key1': 'abc', 'key2': 'efg'}
{'key1': 'abc', 'key2': 'test1'}
{'key1': 'abc', 'key2': 'efg'}
翻譯自: https://www.includehelp.com/python/how-to-copy-a-dictionary-and-only-edit-the-copy.aspx
python字典副本