如何将defaultdict(list)嵌套列表转换为指定层级字典
解决字典层级转换问题
你的核心问题是没有遍历每个t对应的猫-鹰列表,而是直接把整个列表塞给了'cat'字段。要完成转换,需要对每个t对应的列表元素逐个处理,生成对应的cat字典。
正确代码实现
d = { 't0': [['cat0', ['eagle0']], ['cat1', ['eagle1']]], 't1': [['cat2', ['eagle2', 'eagle3']]] } result = [] for t_key, cats_data in d.items(): # 遍历每个猫-鹰组合,生成对应字典 cats_list = [{'cat': cat_name, 'eagles': eagle_list} for cat_name, eagle_list in cats_data] # 组装当前t对应的字典并加入结果列表 result.append({ 't': t_key, 'cats': cats_list }) # 打印结果 for item in result: print(item)
输出结果
{'t': 't0', 'cats': [{'cat': 'cat0', 'eagles': ['eagle0']}, {'cat': 'cat1', 'eagles': ['eagle1']}]} {'t': 't1', 'cats': [{'cat': 'cat2', 'eagles': ['eagle2', 'eagle3']}]}
代码说明
- 用列表推导式遍历
cats_data中的每个元素,每个元素是[猫名, 鹰列表]的结构,直接解构为cat_name和eagle_list,生成目标格式的字典。 - 把每个
t对应的字典收集到result列表中,最终得到所有转换后的结构。
内容的提问来源于stack exchange,提问作者Daria Muller
相关产品推荐
相关产品推荐

