首页 > 解决方案 > 创建字典列表而不覆盖

问题描述

我正在寻找一种listOfuser使用 dict User 更新列表而不覆盖任何最后一个索引的方法。

[{'name': 'john', 'fimily': 'johny', 'studentId': '2120', 'age': 23}, 
 {'name': 'mick', 'fimily': 'micky', 'studentId': '2121', 'age': 24}]

我目前的结果:

[{'name': 'mick', 'fimily': 'micky', 'studentId': '2121', 'age': 24},
{'name': 'mick', 'fimily': 'micky', 'studentId': '2121', 'age': 24}]

用于产生上述结果的代码片段:

 UserInfo = {}
 listOfUser = []
 UserInfo['name'] = "john"
 UserInfo['fimily'] = 'johny'
 UserInfo['studentId'] = '2120'
 UserInfo['age'] = 23
 listOfUser.append(UserInfo)
 print(listOfUser)
 UserInfo['name'] = "mick"
 UserInfo['fimily'] = 'micky'
 UserInfo['studentId'] = '2121'
 UserInfo['age'] = 24
 listOfUser.append(UserInfo)
 print(listOfUser)

有什么办法吗?

标签: pythonlistdictionaryappend

解决方案


您需要将字典的副本附加到列表中

listOfUser.append(UserInfo.copy())

输出

[{'name': 'john', 'fimily': 'johny', 'studentId': '2120', 'age': 23},
{'name': 'mick', 'fimily': 'micky', 'studentId': '2121', 'age': 24}]

推荐阅读