python字典问题

问题描述

将python的字典插入列表中,再update原来的字典,会导致列表中的值也改变

示例:

table_list = []
row_dict = {1: '1'}
table_list.append(dict_copy)
row_dict.update({1: '2'})
print(table_list) # [{1: '2'}]

原因可能是插入列表的字典只是原字典的引用

解决方法

将字典插入列表之前先copy原字典,将copy的字典插入目标列表

table_list = []
row_dict = {1: '1'}
dict_copy = row_dict.copy()
table_list.append(dict_copy)
print(table_list) # [{1: '1'}]
row_dict.update({1: '2'})
dict_copy = row_dict.copy()
table_list.append(dict_copy)
print(table_list) # [{1: '1'}, {1: '2'}]
row_dict.update({1: '3'})
dict_copy = row_dict.copy()
table_list.append(dict_copy)
print(table_list) # [{1: '1'}, {1: '2'}, {1: '3'}]

你可能感兴趣的:(python,python,numpy,开发语言)