如何总结元组列表中的第二个元素, 如果第一个元素相同?
例如:
在此
lst = [('milk', '2.35'), ('bread', '1.95'), ('chips', '2.54'),
('milk', '2.38'), ('milk', '2.31'), ('bread', '1.90')]
我会一起总结牛奶的第二要素, 一起总结面包的第二要素。
并返回此列表:
[('bread', '3.85'), ('chips', '2.54'), ('milk', '7.04')]
def my_def(a):
my_list = []
for item in a:
if item[0] not in my_list:
my_list.append(item[0])
return my_list
我可以找到相同的一个:(
答案 0 :(得分:2)
您可以使用collections.defaultdict()
个浮点数进行总结:
from collections import defaultdict
l = [('milk', '2.35'), ('bread', '1.95'), ('chips', '2.54'), ('milk', '2.38'), ('milk', '2.31'), ('bread', '1.90')]
d = defaultdict(float)
for x, y in l:
d[x] += float(y)
print([(x, round(y, 2)) for x, y in d.items()])
# [('milk', 7.04), ('bread', 3.85), ('chips', 2.54)]