计算列表中出现的次数

我有3个列表,每个列表中都有所有唯一元素,我想计算每个元素的出现次数。这里的“唯一”表示列表中的所有元素都是唯一的,没有重复的元素。


数据示例:


list(c[0]):       list(c[1]):       list(c[1]):      

a                 a                 a

b                 b                 b

c                 c

d

因此,所需的输出应为


a:3,b:3,c:2,d:1

我知道这Counter可以应用于一个列表中,但是如何计算多个列表呢?


梦里花落0921
浏览 215回答 3
3回答

守着星空守着你

展平列表,然后使用counter:假设lst是有问题的三个列表的列表:flat = [i for sub in lst for i in sub]Counter(flat)

陪伴而非守候

使用chain.from_iterable到列表转换成一个平坦的列表,然后将其提供给Counterfrom collections import Counterfrom itertools import chainc = [['a', 'b', 'c', 'd'], ['a', 'b'], ['a']]Counter(chain.from_iterable(c))# Counter({'a': 3, 'b': 2, 'c': 1, 'd': 1})

慕无忌1623718

将3个列表合并在一起itertools.chain,然后用于collections.Counter对项目进行计数。from collections import Counterfrom itertools import chainc = [['a', 'b', 'c', 'd'], ['a', 'b'], ['a']]print(dict(Counter(chain(*c))))输出:{'a': 3, 'b': 2, 'c': 1, 'd': 1}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python