一尘不染

2D列表中的Python计数元素频率

python

我想知道是否有一种方法可以计算2D python列表中的元素频率。对于一维列表,我们可以使用

list.count(word)

但是,如果我有一个清单:

a = [ ['hello', 'friends', 'its', 'mrpycharm'], 
      ['mrpycharm', 'it', 'is'], 
      ['its', 'mrpycharm'] ]

我可以在此2D列表中找到每个单词的频率吗?


阅读 285

收藏
2021-01-20

共1个答案

一尘不染

假设我了解你想要什么,

>>> collections.Counter([x for sublist in a for x in sublist])
Counter({'mrpycharm': 3, 'its': 2, 'friends': 1, 'is': 1, 'it': 1, 'hello': 1})

要么,

>>> c = collections.Counter()
>>> for sublist in a:
...     c.update(sublist)
...
>>> c
Counter({'mrpycharm': 3, 'its': 2, 'friends': 1, 'is': 1, 'it': 1, 'hello': 1})
2021-01-20