Python中如何将多个列表元素按位合并为新列表?
按位合并列表为字典列表的实现方式
有几种简单实用的方法可以实现你要的效果,下面是最常用的两种:
方法一:列表推导式 + zip
直接利用zip()将三个列表按元素位置一一配对,再通过列表推导式逐个生成字典:
ID = [1, 2, 3, 4] Name = ["Sam", "Tom", "Jett", "Cal"] # 注意:元素需加引号,否则会被视为未定义变量 Age = [29, 28, 30, 19] # 生成目标列表 result = [{"ID": id_num, "Name": name, "Age": age} for id_num, name, age in zip(ID, Name, Age)] print(result)
输出结果:
[{'ID': 1, 'Name': 'Sam', 'Age': 29}, {'ID': 2, 'Name': 'Tom', 'Age': 28}, {'ID': 3, 'Name': 'Jett', 'Age': 30}, {'ID': 4, 'Name': 'Cal', 'Age': 19}]
方法二:适配多列表的通用写法
如果后续需要调整键名或新增更多列表,这种写法更易维护:
ID = [1, 2, 3, 4] Name = ["Sam", "Tom", "Jett", "Cal"] Age = [29, 28, 30, 19] # 定义字典的键名 keys = ["ID", "Name", "Age"] # 打包所有值列表 value_lists = [ID, Name, Age] # 生成结果 result = [dict(zip(keys, item)) for item in zip(*value_lists)]
原理:zip(*value_lists)会将多个值列表按位置拆分重组,生成每组对应元素的元组,再通过dict(zip(keys, item))将键与对应值组合成字典。
注意事项
- 确保所有输入列表长度一致,
zip()会自动以最短的列表长度为准,截断超出部分的元素。
内容的提问来源于stack exchange,提问作者Niro Mal
相关产品推荐
相关产品推荐

