如何用Python拆分字典列表中的列表元素为独立字典条目?
解决方法
方法一:列表推导式(简洁高效)
用嵌套列表推导式直接生成目标结果,遍历原列表的每个字典,再拆解其中的info列表元素,搭配对应的class值生成新字典:
my_list = [{"info": ["student A", "idA"], "class": "A1"}, {"info": ["student B", "idB"], "class": "A2"}] result = [{"info": item, "class": d["class"]} for d in my_list for item in d["info"]] print(result)
运行输出:
[{'info': 'student A', 'class': 'A1'}, {'info': 'idA', 'class': 'A1'}, {'info': 'student B', 'class': 'A2'}, {'info': 'idB', 'class': 'A2'}]
方法二:普通循环(适合新手理解)
如果觉得列表推导式逻辑太紧凑,用分步循环的方式也能实现,每一步操作更直观:
my_list = [{"info": ["student A", "idA"], "class": "A1"}, {"info": ["student B", "idB"], "class": "A2"}] result = [] for d in my_list: current_class = d["class"] for info_item in d["info"]: result.append({"info": info_item, "class": current_class}) print(result)
这个逻辑和列表推导式完全一致,只是把嵌套逻辑拆成了分步执行,更容易理清每一步的操作流程。
内容的提问来源于stack exchange,提问作者Alain Skyter
相关产品推荐
相关产品推荐

