Python字典格式转换问题:将角色-人员字典转为指定结构列表
解决方案
给定原字典:
a = {'Role1':['G1','G2','G3','H1'],'Role2':['G5','G6','G0'], 'Role3':['G7','G8'],'Role4':['A5','A6','A0'],'Role5':['C5']}
方法一:列表推导式(简洁高效)
通过嵌套列表推导式直接完成结构转换:
result = [ {'roles': role, 'people': [{'ppl': person} for person in people]} for role, people in a.items() ]
方法二:普通循环写法(直观易懂)
如果偏好分步实现,用多层循环完成:
result = [] # 遍历原字典的角色与对应人员列表 for role, people in a.items(): person_list = [] # 逐个处理人员,生成目标格式的字典 for person in people: person_list.append({'ppl': person}) # 将当前角色的完整数据加入结果列表 result.append({'roles': role, 'people': person_list})
错误原因分析
你之前的代码仅保留首个人员,大概率是因为没有遍历整个人员列表,而是直接取了列表的第一个元素(比如people[0]),或是在构建people子列表时只添加了一次元素,未循环处理所有人员。
内容的提问来源于stack exchange,提问作者G V
相关产品推荐
相关产品推荐

