创建字典列表而不写[duplicate]

问题描述 投票:-1回答:4

我正在寻找一种用dict User更新列表listOfuser而不重写任何最后的索引的方法

[{'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}]

还有mycode:

 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)

有什么办法吗?

python list dictionary append
4个回答
1
投票

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

listOfUser.append(UserInfo.copy())

输出

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

0
投票

您应该为第二个用户创建另一个UserInfo对象,因为您正在使用对first对象的引用,因此您将收到此结果。

© www.soinside.com 2019 - 2024. All rights reserved.