如何在Python中按年龄组归类字典中的ID?
按年龄组归类ID的实现方案
已通过以下代码构建字典record,其中键为ID编号,值为1-13之间的数字(代表对应年龄组):
import csv record={} with open( 'subject-info.csv') as f: reader = csv.DictReader(f) for row in reader: record[row['ID']]=row['Age_group']
方法一:手动初始化普通字典
已知年龄组范围是1-13时,可先创建以年龄组为键、空列表为值的字典,再遍历record完成归类:
# 初始化年龄组字典,键为1-13的字符串(匹配原数据中Age_group的类型),值为空列表 age_groups = {str(num): [] for num in range(1, 14)} # 遍历record,将每个ID归入对应年龄组的列表 for id_num, age_group in record.items(): age_groups[age_group].append(id_num)
方法二:用collections.defaultdict自动处理
如果不确定所有年龄组,或者不想手动初始化字典,推荐使用collections模块的defaultdict,它会自动为新出现的年龄组创建空列表:
from collections import defaultdict age_groups = defaultdict(list) for id_num, age_group in record.items(): age_groups[age_group].append(id_num) # 若需将defaultdict转为普通字典,执行以下语句即可 age_groups = dict(age_groups)
内容的提问来源于stack exchange,提问作者A. Akhrif
相关产品推荐
相关产品推荐

