如何将字典列表中单个key对应的多value拆分为独立键值对字典
Python 字典列表拆分实现方案
需求说明
你有如下结构的字典列表:
df = [{'answers': ['Yes', 'No'], 'question': 'status', 'type': 'string'}]
需要将列表中每个字典的answers字段按元素拆分,生成多个新字典,每个新字典的answers仅保留单个元素的列表形式,预期输出如下:
df = [ {'answers': ['Yes'], 'question': 'status', 'type': 'string'}, {'answers': ['No'], 'question': 'status', 'type': 'string'} ]
实现代码
通用写法(兼容多字典、answers多元素场景)
res = [] for original_dict in df: # 遍历answers的每一个元素 for answer in original_dict['answers']: # 复制原字典的全部字段,避免修改原数据 new_dict = original_dict.copy() new_dict['answers'] = [answer] res.append(new_dict) df = res
逻辑说明
- 先初始化空列表
res用于存储拆分后的所有新字典 - 遍历原列表的每一个原始字典,再遍历该字典
answers字段的所有元素 - 调用字典的
copy()方法复制原始字典的全部键值对,仅修改answers字段为仅包含当前遍历元素的列表 - 将新生成的字典追加到结果列表,最终把结果赋值回
df变量即可
运行代码后输出的df就是你需要的目标结构,哪怕原列表包含多个字典、或者某个字典的answers有2个以上的元素,该写法都可以正常适配。
内容的提问来源于stack exchange,提问作者python_enthusiast
相关产品推荐
相关产品推荐

