python字典列总和

时间:2017-10-28 00:51:47

标签: python dictionary

我有字典格式的表格。我想在最后添加总行。我们可以遍历每个项目并找到总和。有没有优化的解决方案?

示例:

items = {"red":[2,5,7], "yellow":[4,6,7]}

输出

{"red":[2,5,7], "yellow":[4,6,7], "Total":[6,11,14]}

2 个答案:

答案 0 :(得分:4)

这会将所需的项目添加到items

items['Total'] = map( sum, zip(*items.values()) )
  • items.values()为您提供数字列表。对于示例数据,这将是[[2,5,7],[4,6,7]]
  • zip(*items.values()) 支持该列表列表,为您提供一个列表,将相同索引的值组合在一起。例如,这将是[[2,4],[5,6],[7,7]]
  • 我们map sum这些列表中的items函数,为您提供所需金额的总和序列。
  • 最后,将其分配给所需的#include <stdlib.h> typedef struct node{ int key; struct node* next; } node_t; typedef node_t* node_ptr; int main() { node_ptr list_head = NULL; node_ptr p; node_ptr temp; int i; /* create a list with keys = 1,2,3..10 */ for (i = 1; i <= 10; i++) { p = (node_ptr)malloc(sizeof(node_t)); p->key = i; p->next = NULL; if( list_head == NULL ) { list_head= p; } else { for(temp = list_head; temp->next != NULL; temp = temp->next); temp->next = p; } } return 0; } 元素。

答案 1 :(得分:0)

你可以将这样的值相加:

items = {"red":[2,5,7], "yellow":[4,6,7]}

items["total"] = [sum(i) for i in zip(*items.values())]

结果你会得到:

>items
=> {'red': [2, 5, 7], 'yellow': [4, 6, 7], 'total': [6, 11, 14]}

`