如何统计字典enron_data中poi值为1的键的数量?
统计Enron数据集中POI的数量
没问题,这事儿很简单~我来给你两种实用的方法统计Enron数据里满足poi == 1的人员数量:
方法一:用生成器表达式(推荐,更高效)
这种方法不需要生成临时列表,直接通过sum函数累计符合条件的数量,内存占用更低:
# 统计poi等于1的人员数量 poi_count = sum(1 for person_name in enron_data if enron_data[person_name]["poi"] == 1) # 打印结果 print(f"Enron数据集中POI的数量为: {poi_count}")
代码解释:
- 遍历
enron_data的每个键(也就是人员姓名person_name) - 对每个姓名,检查对应字典里的
"poi"值是否等于1 - 每找到一个符合条件的人员,就生成一个
1,sum函数会把这些1累加起来,最终得到总数
方法二:用列表推导式(更直观)
如果你想同时获取所有POI的姓名列表,再统计长度,这种方法更直观:
# 先筛选出所有POI的姓名 poi_names = [name for name in enron_data if enron_data[name]["poi"] == 1] # 统计数量 poi_count = len(poi_names) # 打印结果 print(f"Enron数据集中POI的数量为: {poi_count}")
小补充:
如果你的poi字段实际是布尔值(比如用True/False代替1/0),还可以简化成这样:
poi_count = sum(enron_data[person]["poi"] for person in enron_data)
因为在Python中True会被当作1,False会被当作0,sum直接就能累计数量。
内容的提问来源于stack exchange,提问作者user9611200
相关产品推荐
相关产品推荐

