【发布时间】:2018-09-28 11:06:24
【问题描述】:
我有一个这样的 python 列表:
user = [
{'name': 'ozzy', 'quantity': 5},
{'name': 'frank', 'quantity': 4},
{'name': 'ozzy', 'quantity': 3},
{'name': 'frank', 'quantity': 2},
{'name': 'james', 'quantity': 7},
]
我正在尝试编写代码以通过添加数量来加入具有相同名称的字典。最终名单将是:
user = [
{'name': 'ozzy', 'quantity': 8},
{'name': 'frank', 'quantity': 6},
{'name': 'james', 'quantity': 7}
]
我已经尝试了一些方法,但我很难获得正确的代码。我在下面写的代码有点添加值(其实我的列表要长得多,我只是添加了一小部分供参考)。
newList = []
quan = 0
for i in range(0,len(user)):
originator = user[i]['name']
for j in range(i+1,len(user)):
if originator == user[j]['name']:
quan = user[i]['quantity'] + user[j]['quantity']
newList.append({'name': originator, 'Quantity': quan})
您能帮我获取正确的代码吗?
【问题讨论】:
-
你写的代码有什么问题?输出不正确吗?请给出您当前和预期的输出。
-
是否应该保持输出的相对顺序?
-
@Zinki 他们给出了预期的输出
标签: python list dictionary iteration