Sna*_*aaa 4 python counter list
这可能是一个非常直截了当的问题,但我无法在其他地方找到答案,所以我会问.查找元素在嵌套列表中出现的次数的最佳方法是什么?例如:
my_list=[[a,b,c,d],[a,b,z,d],[a,c,f,e],[d,w,f,a]]
Run Code Online (Sandbox Code Playgroud)
我如何找到'a'是列表中第一个元素的次数?或者更一般地说,my_list中出现多少次'a'?我想有一种方法可以用collections.Counter做到这一点,但是我还没弄清楚.
编辑
对于my_list,我想要一个输出,a:3当计数它是否是列表的第一个元素.如果问题被改变以查看是否b是第二个元素,那么期望的输出将是b:2
Mar*_*ers 12
使用嵌套的生成器表达式:
Counter(x for sublist in my_list for x in sublist)
Run Code Online (Sandbox Code Playgroud)
要计算第一个位置的项目,不同的生成器表达式将获取该项目以进行计数:
Counter(sublist[0] for sublist in my_list)
Run Code Online (Sandbox Code Playgroud)
演示:
>>> from collections import Counter
>>> my_list=[['a','b','c','d'],['a','b','z','d'],['a','c','f','e'],['d','w','f','a']]
>>> Counter(x for sublist in my_list for x in sublist)
Counter({'a': 4, 'd': 3, 'c': 2, 'b': 2, 'f': 2, 'e': 1, 'w': 1, 'z': 1})
>>> Counter(sublist[0] for sublist in my_list)
Counter({'a': 3, 'd': 1})
Run Code Online (Sandbox Code Playgroud)