下面是一个变体,用于使用
defaultdict
:
from collections import defaultdict
t = ['hello,5', 'mellow,4', 'mellow,2', 'yellow,2',
'yellow,7', 'hello,7', 'mellow,7', 'hello,7']
count = defaultdict(int)
for name_number in t:
name, number = name_number.split(",")
count[name] += int(number)
你也可以使用
Counter
:
from collections import Counter
count = Counter()
for name_number in t:
name, number = name_number.split(",")
count[name] += int(number)
在这两种情况下,您都可以将输出转换为
list
属于
tuple
s使用:
list(count.items())
# -> [('hello', 19), ('mellow', 13), ('yellow', 9)]
我运行了你的代码,得到了正确的结果(尽管不是你想要的格式)。