sum list of dictionary values

后端 未结 7 2235
情深已故
情深已故 2020-12-20 21:23

I have a list of dictionary in this form :

[
{\'signal_8\': 1, \'signal_1\': 7, \'signal_10\': 5, \'signal_5\': 2, \'signal_2\': 5, \'signal_6\': 3, \'signa         


        
相关标签:
7条回答
  • 2020-12-20 22:29

    Try this:

    original_list = [
    {'signal_8': 1, 'signal_1': 7, 'signal_10': 5, 'signal_5': 2, 'signal_2': 5, 'signal_6': 3, 'signal_4': 9, 'signal_3': 6, 'signal_9': 4, 'signal_7': 8}, 
    
    {'signal_8': 1, 'signal_1': 7, 'signal_10': 5, 'signal_5': 2, 'signal_2': 5, 'signal_6': 3, 'signal_4': 9, 'signal_3': 6, 'signal_9': 4, 'signal_7': 8},
    
    {'signal_8': 1, 'signal_1': 7, 'signal_10': 5, 'signal_5': 2, 'signal_2': 5, 'signal_6': 3, 'signal_4': 9, 'signal_3': 6, 'signal_9': 4, 'signal_7': 8},
    ]
    print({k:sum([x[k] for x in original_list if k in x]) for i in original_list for k,v in i.items()})
    

    Output:

    {'signal_8': 3, 'signal_1': 21, 'signal_10': 15, 'signal_5': 6, 'signal_2': 15, 'signal_6': 9, 'signal_4': 27, 'signal_3': 18, 'signal_9': 12, 'signal_7': 24}
    

    Note that if there are missing signals, it will just consider it as zero

    0 讨论(0)
提交回复
热议问题