如何将Python嵌套字典转换为符合指定格式的合并字典?
你当前代码出现列表嵌套的核心原因是:内层字典的取值本身就是列表类型,append()方法会将传入的整个列表作为单个元素插入新列表,最终就会出现多层列表嵌套的问题。
方案1:使用extend()替代append()(通用方案)
extend()会将传入列表的所有元素逐个追加到目标列表中,即使后续内层value的列表包含多个元素也可以正常处理,修改后代码如下:
new_d = {} for sub in d.values(): for key, value in sub.items(): new_d.setdefault(key, []).extend(value)
方案2:直接提取列表首个元素追加(确定单元素场景适用)
如果你能确定所有内层value的列表永远只会有1个元素,也可以直接取列表下标为0的元素追加:
new_d = {} for sub in d.values(): for key, value in sub.items(): new_d.setdefault(key, []).append(value[0])
两种方案运行后都可以得到你需要的目标结果:{1:["hello", "!"], 2: ["How are you", "?"]}
内容的提问来源于stack exchange,提问作者Roxy
相关产品推荐
相关产品推荐

