Rai*_* Hu 1 python list python-3.x
[('Visa', 980.5), ('Rogers', 61.5), ('Visa', 215.0)]
Run Code Online (Sandbox Code Playgroud)
例如,我有上面的元组列表,我如何找到重复项(即'Visa')并将它们的值相加(即980.5 + 215.0)?输出应该是:
[('Visa', 1195.5), ('Rogers', 61.5)]
Run Code Online (Sandbox Code Playgroud)
使用字典:
>>> data = [('Visa', 980.5), ('Rogers', 61.5), ('Visa', 215.0)]
>>> result = {}
>>> for card,value in data:
total = result.get(card,0) + value
result[card] = total
>>> print result.items()
[('Visa': 1195.5), ('Rogers': 61.5)]
Run Code Online (Sandbox Code Playgroud)
看起来每个人都忘记了Collections.Counter:
from collections import Counter
c = Counter()
for card, val in lst:
c[card] += val
print(list(c.items()))
# [('Visa', 1195.5), ('Rogers', 61.5)]
Run Code Online (Sandbox Code Playgroud)