如何在Python中使用Counter对对象数组进行计数分组
如何使用Counter对对象数组进行计数和分组?
可以通过以下几步实现需求,注意别用list当变量名(会覆盖Python内置的list类型),我把原数组变量名改成了data:
- 提取待统计字段:先从每个字典里取出
text字段的值,生成纯文本列表 - 用Counter统计频次:借助
collections模块的Counter工具快速统计每个文本的出现次数 - 转换为目标格式:把Counter的统计结果重新组装成包含
text和count字段的字典数组
完整代码示例:
from collections import Counter # 原数据(避免使用list作为变量名) data = [ {"text": "London"}, {"text": "New york"}, {"text": "London"} ] # 提取所有text值 text_list = [item["text"] for item in data] # 统计各文本出现频次 counts = Counter(text_list) # 转换为期望的输出格式 result = [{"text": key, "count": value} for key, value in counts.items()] print(result)
运行后输出结果如下,和你期望的格式一致:
[{'text': 'London', 'count': 2}, {'text': 'New york', 'count': 1}]
Python 3.7及以上版本的Counter默认会保留元素首次出现的顺序,如果你用的是更旧的版本,可以改用collections.OrderedCounter来维持顺序。
内容的提问来源于stack exchange,提问作者SexyMF
相关产品推荐
相关产品推荐

