我如何使用集合库中的计数器将列表的列表转换为每个单词整体出现次数的计数?
例如[['a','b','a','c'], ['a','b','c','d']] -> {a:2, b:2 , c:2, d:1}
即a
、b
和 c
出现在两个列表中,但 d
只出现在一个列表中。
最佳答案
将生成器表达式与 set
结合使用:
>>> from collections import Counter
>>> seq = [['a','b','a','c'], ['a','b','c','d']]
>>> Counter(x for xs in seq for x in set(xs))
Counter({'a': 2, 'c': 2, 'b': 2, 'd': 1})
回应评论,没有生成器表达式:
>>> c = Counter()
>>> for xs in seq:
... for x in set(xs):
... c[x] += 1
...
>>> c
Counter({'a': 2, 'c': 2, 'b': 2, 'd': 1})
关于python - 将计数器与列表列表一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19211018/