Python字典列表:统计id出现次数及访问指定键值的方法
问题解法
1. 统计每个id的出现次数
方法一:使用collections.Counter(最简洁)
Python标准库的Counter专门用于频次统计,一行生成器表达式就能完成需求:
from collections import Counter Data = [{ "num": 0, "id": "0001", "text": "Apple" }, { "num": 1, "id": "0002", "text": "Banana"}, { "num": 2, "id": "0001", "text": "Orange" }, { "num": 3, "id": "0001", "text": "Berries" }, { "num": 4, "id": "0002", "text": "Apple" } ] id_counts = Counter(item['id'] for item in Data) # 转成普通字典(可选,Counter本身支持所有字典操作) result = dict(id_counts) print(result) # 输出: {'0001': 3, '0002': 2}
方法二:手动遍历实现
不想依赖标准库的话,用基础字典操作也能轻松实现:
id_counts = {} for item in Data: current_id = item['id'] # 存在则计数加1,不存在则初始化为1 id_counts[current_id] = id_counts.get(current_id, 0) + 1 print(id_counts) # 输出: {'0001': 3, '0002': 2}
2. 获取字典列表中单个键的所有值
用列表推导式一行就能提取指定键的所有值:
# 示例:获取所有'text'键的值 all_text_values = [item['text'] for item in Data] print(all_text_values) # 输出: ['Apple', 'Banana', 'Orange', 'Berries', 'Apple'] # 若担心部分字典没有目标键,可加判断过滤 all_safe_text_values = [item['text'] for item in Data if 'text' in item]
内容的提问来源于stack exchange,提问作者Donya
相关产品推荐
相关产品推荐

