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

如何将Python列表与字典逐行合并?

问题描述

我有两类数据,分别是一个字典和一个列表,示例如下:

data_1 = {
    '583015': 7,
    '583016': 0,
    '583017': 0,
    '583018': 22,
    '583019': 74,
    '583020': 56,
    '583021': 108,
    '583022': 56,
    '583023': 72,
    '583024': 45,
}

data_2 = [
    '1',
    '2',
    '3',
    '4',
    '5',
    '6',
    '7',
    '8',
    '9',
    '10',
]

我一开始写了这段代码:

for i in data_1:
   print(i)

但发现没法在这个循环里嵌套遍历data_2的循环,现在需要把data_1和data_2逐行合并,得到如下预期结果:

combined = {
    '1': 7,
    '2': 0,
    '3': 0,
    '4': 22,
    '5': 74,
    '6': 56,
    '7': 108,
    '8': 56,
    '9': 72,
    '10': 45
}
解决方案

核心是把data_2的元素作为新字典的键,data_1的值按顺序对应过去。注意Python 3.7+版本的字典会保留插入顺序,所以可以直接用data_1.values()获取有序的值集合。

方法1:字典推导式 + zip()

combined = {key: value for key, value in zip(data_2, data_1.values())}

zip(data_2, data_1.values())会将两个序列的元素按位置一一配对,再通过字典推导式生成目标字典。

方法2:dict()构造函数 + zip()

更简洁的写法:

combined = dict(zip(data_2, data_1.values()))

zip()返回的配对元组可以直接传入dict()生成新字典。

方法3:基础循环实现

如果偏好循环写法,无需嵌套,直接同时遍历两个序列即可:

combined = {}
for key, value in zip(data_2, data_1.values()):
    combined[key] = value

以上三种方法都能得到你需要的combined字典。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:15:47