Python:在列表字典中使用 Counter

标签 python list dictionary counter

给定一个这样的列表字典: d={0:[0.1,0.2,0.1], 1:[1.1,1.2,0.1], 2:[2.1,2.2,0.1]}

我希望能够计算每个单独的值在所有列表中出现的次数。在给出的示例中,预期结果将是:

occurrences={0.1:4, 0.2:1, 1.1:1, 1.2:1, 2.1:1, 2.2:1}

我正在考虑像这样在一行中使用 Counter:

occurrences = Counter([k[0] for k in d.values()])

但输出是 Counter({0.1: 1, 1.1: 1, 2.1: 1}),这意味着上一行只计算每个列表第一个元素的出现次数。

如何将此计数扩展到所有列表的所有元素?

最佳答案

因为你似乎并不关心字典的键,你可以只使用一个理解:

>>> Counter(v for sublist in d.values() for v in sublist)
Counter({0.1: 4, 0.2: 1, 1.1: 1, 1.2: 1, 2.1: 1, 2.2: 1})

关于Python:在列表字典中使用 Counter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40243535/

相关文章:

java - 如何在空类构造函数中初始化 List<E>?

java - 使用字母数字值对 Java 中的自定义对象列表进行排序

c++ - C++ 中的 std::map 键

python - Python 字典哈希查找是如何工作的?

新线程中的Python对象方法

python - 邮件 URL 中的正则表达式匹配密码

c# - 代码不会退出 foreach block

python - 从python中的字典中制作所选项目的数组/列表

python有没有办法将一个参数的默认值设置为函数中的另一个参数?

python - 在 python 3.6 中安装 matplotlib 的问题