You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从包含列表的字典生成多个键值对应字典?

解决方案:将含列表的字典拆分为多个单条目字典

这个需求在批量数据处理里挺常见的,用Python可以通过zip()函数结合列表推导式轻松搞定,给你两种实用思路:

针对固定键的直接写法

如果你的字典就固定是user和udp这两个键,直接配对对应列表的元素就行:

# 原始字典
original_dict = {'user': ['BEBR', 'FRPA', 'GEMU'], 'udp': ['COLT_BE_8845-udp', 'COLT_FR_8845-udp', 'COLT_DE_8845-udp']}

# 生成目标列表
result = [{'user': user_val, 'udp': udp_val} for user_val, udp_val in zip(original_dict['user'], original_dict['udp'])]

# 输出结果
print(result)

运行后就能得到你想要的格式:

[{'user': 'BEBR', 'udp': 'COLT_BE_8845-udp'}, {'user': 'FRPA', 'udp': 'COLT_FR_8845-udp'}, {'user': 'GEMU', 'udp': 'COLT_DE_8845-udp'}]

通用写法(适配任意数量的键)

如果之后字典可能新增更多键(比如再加个tcp列表),用下面的方法更灵活,不用修改推导式结构:

original_dict = {'user': ['BEBR', 'FRPA', 'GEMU'], 'udp': ['COLT_BE_8845-udp', 'COLT_FR_8845-udp', 'COLT_DE_8845-udp']}

# 通用生成方式
result = [dict(zip(original_dict.keys(), item_pair)) for item_pair in zip(*original_dict.values())]

print(result)

原理说明

  • zip(*original_dict.values())会把字典中所有列表的对应位置元素打包成元组,比如第一个元组就是('BEBR', 'COLT_BE_8845-udp')
  • 再用dict(zip(original_dict.keys(), item_pair))把每个元组和字典的键一一对应,生成单个条目字典

不管字典有多少个键,只要每个键对应的列表长度一致,都能正确生成目标列表,非常适合后续扩展场景。

内容的提问来源于stack exchange,提问作者user7478971

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 08:08:14