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

Python代码重构:循环中变量类型转换与值存储问题

解决方法

你遇到的问题是循环里的item只是临时变量,赋值给它不会修改原来的AD、RSM变量。这里有两种可行的方案:

方案1:用主字典存储所有子字典(推荐)

这种方式更整洁,方便后续统一管理所有变量字典,也避免全局变量混乱:

import pandas as pd

# 定义需要读取的工作表名称列表
sheet_names = ["AD", "RSM"]
# 初始化主字典用来存放所有子字典
all_dicts = {}

for name in sheet_names:
    df = pd.read_excel('test.xlsx', name)
    all_dicts[name] = dict(zip(df.Key, df.Value))

# 调用时直接通过主字典的键访问对应字典
AD_dict = all_dicts["AD"]
RSM_dict = all_dicts["RSM"]

方案2:直接生成全局变量(不推荐)

如果一定要单独生成AD、RSM这类全局变量,可以用globals()函数,但这种方式会降低代码可读性,不建议在复杂场景中使用:

import pandas as pd

sheet_names = ["AD", "RSM"]

for name in sheet_names:
    df = pd.read_excel('test.xlsx', name)
    globals()[name] = dict(zip(df.Key, df.Value))

# 此时可直接使用AD、RSM变量
print(AD)
print(RSM)

原代码不生效的原因

你的循环里,item是从列表中取出的字符串副本,给item赋值字典只是修改了这个临时副本,和最初定义的AD、RSM变量没有关联,所以循环结束后原变量还是初始的字符串值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 11:31:34