为了账号安全,请及时绑定邮箱和手机立即绑定

计算列表中出现的次数

计算列表中出现的次数

梦里花落0921 2021-04-07 16:15:54
我有3个列表,每个列表中都有所有唯一元素,我想计算每个元素的出现次数。这里的“唯一”表示列表中的所有元素都是唯一的,没有重复的元素。数据示例:list(c[0]):       list(c[1]):       list(c[1]):      a                 a                 ab                 b                 bc                 cd因此,所需的输出应为a:3,b:3,c:2,d:1我知道这Counter可以应用于一个列表中,但是如何计算多个列表呢?
查看完整描述

3 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞


展平列表,然后使用counter:


假设lst是有问题的三个列表的列表:


flat = [i for sub in lst for i in sub]

Counter(flat)


查看完整回答
反对 回复 2021-04-20
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

使用chain.from_iterable到列表转换成一个平坦的列表,然后将其提供给Counter


from collections import Counter

from itertools import chain

c = [['a', 'b', 'c', 'd'], ['a', 'b'], ['a']]

Counter(chain.from_iterable(c))

# Counter({'a': 3, 'b': 2, 'c': 1, 'd': 1})


查看完整回答
反对 回复 2021-04-20
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

将3个列表合并在一起itertools.chain,然后用于collections.Counter对项目进行计数。


from collections import Counter

from itertools import chain

c = [['a', 'b', 'c', 'd'], ['a', 'b'], ['a']]

print(dict(Counter(chain(*c))))

输出:


{'a': 3, 'b': 2, 'c': 1, 'd': 1}


查看完整回答
反对 回复 2021-04-20
  • 3 回答
  • 0 关注
  • 214 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信