dic = {}
lst = [] # 先声明一个字典和一个列表
dic['name'] = "chenrun"
lst.append(dic)
print(lst)
dic["name"] = "alex"
lst.append(dic)
print(lst) # [{'name': 'alex'}, {'name': 'alex'}].不是想要的结果 # 原因:
print(id(lst[0]["name"])) # 2362655671328
print(id(lst[1]['name'])) # 2362655671328,可见这两个虽然列表的位置不一样,但是都是指向同一个对象 # 解决办法
lst = []
for i in range(3):
dic = {} # 每次都重新声明一个新字典
dic['name'] = i
lst.append(dic)
print(id(dic))
print(lst)
05-12 16:00