我有一个如下所示的列表:
(151258350, 2464)
(151258350, 56)
(151262958, 56)
(151258350, 56)
(151262958, 112)
(151262958, 112)
(151259627, 56)
(151262958, 112)
(151262958, 56)
Run Code Online (Sandbox Code Playgroud)
我想要一个看起来像这样的结果:
151259627 56
151262958 448
151258350 2576
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
for key, vals in d.items():
tempList.append((key, reduce(add, vals)))
Run Code Online (Sandbox Code Playgroud)
这里,d是具有键值对的列表.tempList是List,在按键对它们求和后将附加值.和添加是一个功能:
def add(x, y): return x+y
Run Code Online (Sandbox Code Playgroud)
如果已经提出这个问题,请指出我,因为我自己找不到这个问题.
使用柜台:
>>> l = [(151258350, 2464),
(151258350, 56),
(151262958, 56),
(151258350, 56),
(151262958, 112),
(151262958, 112),
(151259627, 56),
(151262958, 112),
(151262958, 56)]
>>> c = Counter()
>>> for k, v in l:
c[k] += v
>>> c
Counter({151258350: 2576, 151262958: 448, 151259627: 56})
Run Code Online (Sandbox Code Playgroud)
num_list = [(151258350, 2464),
(151258350, 56),
(151262958, 56),
(151258350, 56),
(151262958, 112),
(151262958, 112),
(151259627, 56),
(151262958, 112),
(151262958,56)]
num_dict = {}
for t in num_list:
if t[0] in num_dict:
num_dict[t[0]] = num_dict[t[0]]+t[1]
else:
num_dict[t[0]] = t[1]
for key,value in num_dict.items():
print "%d %d" %(key,value)
Run Code Online (Sandbox Code Playgroud)