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

如何将可变变量存入字典并通过类似方式调用对应变量

动态拼接变量名调用的实现方案

你代码里的data_i不会被自动解析为对应编号的data_1/data_2变量,Python默认不会把拼接生成的字符串识别为变量名,有两种可落地的实现方式:

  • 临时兼容方案:读取作用域变量字典(不推荐长期使用)
    Python内置的globals()(全局环境)和locals()(当前函数/代码块局部环境)会返回存储当前所有变量的字典,你可以直接用拼接好的变量名当key取值,修改后的代码如下:
    N = 10
    d = {}
    # 注意你的变量是从data_1开始编号的,range默认从0起始,这里要调整范围
    for i in range(1, N+1):
        d[f'data_{i}'] = globals()[f'data_{i}']
    

    风险提示:这种写法可读性极差,后续维护时很难追踪变量的调用逻辑,还容易因为作用域混淆取到错误的值,只适合临时跑一次性脚本用。

  • 最优实践:从定义阶段就用字典存储
    最稳妥的方式是根本不要定义data_1/data_2这类带编号的零散变量,读取fits数据的时候直接写入字典,完全不需要做动态变量名解析,从根源上避免问题:
    N = 10
    d = {}
    for i in range(1, N+1):
        # 对应替换成你fits.getdata的实际参数即可,如果文件路径按编号规则命名也可以直接拼接路径
        d[f'data_{i}'] = fits.getdata(...)
    
    后续要调用对应数据,直接用d['data_5']就能拿到对应编号的数据集,逻辑清晰也不会出现变量解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 16:42:51