你不创建一个副本,而是创建一个引用。两个变量都指向相同的内存。如果要创建不更改“原件”的精确副本,应使用
test_dict = DICT.copy()
copy.deepcopy
函数来自
copy
模块
import copy
CHARACTERS = ['A', 'G', 'T', 'C', 'C', 'A', 'G', 'T', 'G', 'T', 'A', 'A']
DICT = {'key1': "foo", 'key2': "bar", 'key3': CHARACTERS}
def test():
test_dict = copy.deepcopy(DICT) # first reference of 'test_dict'
print("DICT before", DICT)
test_dict['key3'] += ['G']
print("DICT after ", DICT)
test()
DICT before {'key1': 'foo', 'key2': 'bar', 'key3': ['A', 'G', 'T', 'C', 'C', 'A', 'G', 'T', 'G', 'T', 'A', 'A']}
DICT after {'key1': 'foo', 'key2': 'bar', 'key3': ['A', 'G', 'T', 'C', 'C', 'A', 'G', 'T', 'G', 'T', 'A', 'A']}