Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python—如何计算列表中出现的次数_Python_List_Python 3.x_Count - Fatal编程技术网

Python—如何计算列表中出现的次数

Python—如何计算列表中出现的次数,python,list,python-3.x,count,Python,List,Python 3.x,Count,对于这样的列表: spam=[['a',1],['b',2],['c',3],['a',2],['b',2],['c',2],['a',3],['b',3],['c',3]] 需要计算a、b和c的出现次数。查看该类。尽管它不是对值求和,但要小心,您可以使用和生成器表达式- Counter(a for a,_ in spam) 演示- >>> from collections import Counter >>> spam=[['a',1],['b',2],

对于这样的列表:

spam=[['a',1],['b',2],['c',3],['a',2],['b',2],['c',2],['a',3],['b',3],['c',3]]
需要计算a、b和c的出现次数。

查看该类。尽管它不是对值求和,但要小心,您可以使用和生成器表达式-

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})

您可以使用字典:

c={}
for i in spam: c[i[0]] = c[i[0]]+1 if i[0] in c else 1

将列表转换为字典

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}

回答得很好,但将来我更愿意看到那些先发布他们尝试过的代码的人。这可以简化一点:
计数器(垃圾邮件中的a[0])
@VPfB是的,在这种情况下正确的生成器表达式可能更好。我在答复中更新了这一点。