我有一个成对的列表。该列表包含[x,y]的项。我想创建列表或字典,使左边的项为键,右边的为值。该列表可能包含多次相同的键。我想对这些值求和,并保留一次密钥。
。
pairs[0]=['3106124650', 2.86]
pairs[1]=['3106124650', 8.86]
对[2] = ['5216154610',23.77]
我想保留一次'3106124650'并求和这些值,所以我的新列表或字典将包含一次该键的值为11.72。 '3106124650',11.72
答案 0 :(得分:1)
这是一种方法。对于大型数据集,numpy可能会更快。
import collections
result = collections.defaultdict(lambda : 0)
for k,v in pairs:
result[k]+=v
答案 1 :(得分:0)
sumdict = dict()
for i, v in pairs:
sumdict[i] = v + sumdict.get(i, 0)
答案 2 :(得分:0)
li=[['a',1],['a',2],['b',3],['c',4]]
d={}
for w in li:
d[w[0]]=w[1]+d.get(w[0],0)
Output:{'a': 3, 'b': 3, 'c': 4}
答案 3 :(得分:0)
您可以尝试以下操作:
d={}
for entry in pairs:
if entry[0] in d:
d[entry[0]]+=entry[1]
else:
d[entry[0]]=entry[1]