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

Python如何循环遍历列表为嵌套字典对应键赋值

Python字典循环赋值实现方法

现有初始数据

初始字典:

a = {'chance': {'instance1': '', 'instance2': '', 'instance3': '', 'instance4': ''}}

待赋值列表:

pol = ["1","2","3","4"]

目标结果:

{'chance': {'instance1': '1', 'instance2': '2', 'instance3': '3', 'instance4': '4'}}

原有代码问题说明

之前写的两段代码无法实现需求,核心问题如下:

  • 第一段双层循环仅做了数值打印,既没有关联pol列表的元素,也没有对原字典做任何修改操作
  • 第二段正则匹配代码仅识别了instance开头的键名,内层循环执行第一次就被break中断,全程没有编写字典赋值的逻辑,仅做了打印输出

可直接运行的实现方案

方案1:按索引顺序直接赋值(推荐,无需引入正则)

因为键名instance1到instance4的序号和pol列表的元素顺序完全一一对应,直接通过索引映射赋值即可,逻辑最简单:

# 遍历pol列表的索引和值
for index, value in enumerate(pol):
    # 拼接对应的字典键名,索引从0开始所以序号要+1
    dict_key = f"instance{index + 1}"
    a['chance'][dict_key] = value

运行后打印a就能得到目标结构的字典。

方案2:正则匹配键名赋值(适配键顺序不固定的场景)

如果后续字典里instance开头的键顺序不是严格按1-4排列,可以用正则提取键名里的数字,再映射到列表对应位置的元素:

import re

for key in a['chance']:
    # 提取instance后面的数字部分
    match_result = re.match(r"instance(\d+)", key)
    if match_result:
        instance_num = int(match_result.group(1))
        # 数字减1对应列表索引,完成赋值
        a['chance'][key] = pol[instance_num - 1]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 12:27:44