Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python2,对dict列表中的相同值求和_Python - Fatal编程技术网

Python2,对dict列表中的相同值求和

Python2,对dict列表中的相同值求和,python,Python,我有一个dict,像这样: [{'number': 44, 'code': 'ZXC'}, {'number': 699, 'code': 'ASD'}, {'number': 3, 'code': 'ZXC'}] [{'number': 47, 'code': 'ZXC'}, {'number': 699, 'code': 'ASD'}] 我怎样才能得到这样的列表: [{'number': 44, 'code': 'ZXC'}, {'number': 699, 'code': '

我有一个dict,像这样:

[{'number': 44, 'code': 'ZXC'},
{'number': 699, 'code': 'ASD'},     
{'number': 3, 'code': 'ZXC'}]
[{'number': 47, 'code': 'ZXC'},
{'number': 699, 'code': 'ASD'}]
我怎样才能得到这样的列表:

[{'number': 44, 'code': 'ZXC'},
{'number': 699, 'code': 'ASD'},     
{'number': 3, 'code': 'ZXC'}]
[{'number': 47, 'code': 'ZXC'},
{'number': 699, 'code': 'ASD'}]

我建议,将您的列表作为输入列表:

tempList = list()  
FinalList()=list()  
for d in yourList:  
    if d['day'] in tempList:  
        FinalList[tempList.index(d['day'])]['number'] += d['number']  
    else: 
        tempList.append(d['day')]
        FinalList.append(d)
试试这个:

data=[{'number': 44, 'code': 'ZXC'},{'number': 699, 'code': 'ASD'},{'number': 3, 'code': 'ZXC'}]

from collections import defaultdict

c = defaultdict(int)
for d in data:
    c[d['code']] += d['number']

print [{'number': number, 'code': code} for number, code in c.items()]
#So:
new_list=[{'number': number, 'code': code} for number, code in c.items()]
#In new_list is your list groupped by code and sum applied.

在下面的答案中几乎完全相同的场景。只需创建一个新字典,并用总和填充它,而不是打印出来:在这里尝试代码,并用注释进行解释。