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

如何通过存储数组名的变量更新已存在的Python数组?

问题分析与解决方法

问题根源

你犯了两个关键错误:

  1. 把appointment赋值为字符串'J2',这个字符串只是文本内容,和你定义的J2数组没有任何关联,两者是完全独立的对象。
  2. Python的字符串是不可变类型,执行appointment[time] = 6时会直接抛出TypeError,根本无法完成赋值操作,更别说影响数组了。

解决方案

方案1:直接让变量引用数组(推荐)

让appointment直接指向J2数组对象,这样操作appointment就等同于操作J2:

J2 = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
appointment = J2  # 让appointment引用J2数组
time = 3
appointment[time] = 6  # 此时修改的就是J2数组的索引3位置
print(J2)  # 输出会看到索引3的值变为6

原理:Python中变量存储的是对象的引用,appointment = J2后,两个变量指向同一个数组对象,修改任意一个都会影响原数组。

方案2:通过变量名字符串操作(不推荐)

如果因为特殊需求必须用字符串存储变量名,可以通过globals()(全局命名空间)或locals()(局部命名空间)来获取数组对象,但这种写法可读性差,容易引发bug,仅作参考:

J2 = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
appointment = 'J2'
time = 3
globals()[appointment][time] = 6  # 从全局空间中取出名为'J2'的数组并修改
print(J2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 02:51:12