Python 计算某一类型词典的数量

Python 计算某一类型词典的数量,python,Python,我有一份字典清单。 每本词典都有一个颜色属性。例如: {'att1':value1, 'att2': value2, 'colour': 'Red'} colou属性来自15种最大颜色的列表 清单上有一千多本这样的词典。我需要找出什么是流行的颜色,有多少实例?同样地,我需要第二个最流行的颜色,它的实例数,第三个,第四个等等 一些奇妙的Python语法能帮我吗 from collections import defaultdict colours = defaultdict(int) for i

我有一份字典清单。 每本词典都有一个颜色属性。例如:

{'att1':value1, 'att2': value2, 'colour': 'Red'}
colou属性来自15种最大颜色的列表

清单上有一千多本这样的词典。我需要找出什么是流行的颜色,有多少实例?同样地,我需要第二个最流行的颜色,它的实例数,第三个,第四个等等

一些奇妙的Python语法能帮我吗

from collections import defaultdict
colours = defaultdict(int)
for item in mylist:
   colours[item["colour"]] +=1

为您提供一个带有所有颜色及其各自编号的
defaultdict
。以排序方式显示这些内容很简单。

使用
映射
将每个字典映射到其颜色,然后使用
集合。计数器
。这样应该是一条单行线。差不多

collections.Counter(map(lambda x: x.get("color"), listofdict))

您可以像这样使用计数器和生成器:

distribution = collections.Counter(d['colour'] for d in list_of_dict)
distribution.most_common(2)
我创建了100个红色和10个蓝色项目,打印结果是:

{'Blue': 10, 'Red': 100}

您可能可以找到一种方法来查找最大值等或对其进行排序。

一些不太像Python的东西。对于每个颜色,例如:redList=[color For color For color in myLIst if myLIst['colorproperty']=='RED'],然后是len(redList)。我没有把这个添加到原始版本中,因为我看不出它有什么帮助。
{'Blue': 10, 'Red': 100}