python列表中的Sum元素

2024-09-24 08:30:47 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将此列表中的值相加:

[{'name': 'Radio HF', **'quantidade': '1'**}, {'name': 'Radio HF', **'quantidade': '1'**}, {'name': 'chave fenda', 'quantidade': '2'}, {'name': 'Coletes salva-vidas', 'quantidade': '3'}]

示例:如果[index]具有相同的名称,则我希望对"quantidade"中的值求和。我该怎么做


Tags: name名称示例列表indexradiohfsalva
2条回答

我不知道原因,但是你的'quantidade'的类型是string,所以你必须在执行sum之前将它强制转换为int

代码

mylist = [{'name': 'Radio HF', 'quantidade': '1'}, 
           {'name': 'Radio HF', 'quantidade': '1'}, 
           {'name': 'chave fenda', 'quantidade': '2'}, 
           {'name': 'Coletes salva-vidas', 'quantidade': '3'}]

sums = {}

for x in mylist:
    sums[x['name']] = sums.get(x['name'],0) + int(x['quantidade'])

输出

{'Radio HF': 2, 'chave fenda': 2, 'Coletes salva-vidas': 3}

迭代列表中的字典,并使用字典将quantidade值与类似的name相加

lst = [{'name': 'Radio HF', 'quantidade': '1'},
       {'name': 'Radio HF', 'quantidade': '1'},
       {'name': 'chave fenda', 'quantidade': '2'},
       {'name': 'Coletes salva-vidas', 'quantidade': '3'}]

sums = {}
for d in lst:
    sums[d['name']] = sums.get(d['name'], 0) + int(d['quantidade'])

print(sums) # {'Radio HF': 2, 'chave fenda': 2, 'Coletes salva-vidas': 3}

相关问题 更多 >