对于这样的列表:
spam=[['a',1],['b',2],['c',3],['a',2],['b',2],['c',2],['a',3],['b',3],['c',3]]
需要计算a,b c。
的出现次数答案 0 :(得分:4)
您可以使用collections.Counter
和生成器表达式 -
Counter(a for a,_ in spam)
演示 -
>>> from collections import Counter
>>> spam=[['a',1],['b',2],['c',3],['a',2],['b',2],['c',2],['a',3],['b',3],['c',3]]
>>> Counter(a for a,_ in spam)
Counter({'a': 3, 'b': 3, 'c': 3})
答案 1 :(得分:1)
查看Counter课程。小心,虽然它没有总结价值
答案 2 :(得分:0)
您可以使用字典:
c={}
for i in spam: c[i[0]] = c[i[0]]+1 if i[0] in c else 1
答案 3 :(得分:0)
将列表转换为字典
spam=[['a',1],['b',2],['c',3],['a',2],['b',2],['c',2],['a',3],['b',3],['c',3]]
dict(spam)
输出:{' a':3,' b':3,' c':3}