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

Python中通过for循环动态创建变量并添加至列表的问题

解决方案

1. 修正语法错误,实现需求

你遇到的语法错误是因为append()方法只能接收表达式作为参数,而赋值语句(=)不属于表达式,无法直接放在append()里。需要将赋值和添加到列表拆分为两步执行:

lst = []
for x in range(0, 9):
    # 第一步:动态创建全局变量并赋值
    globals()[f'string{x}'] = 'Hello'
    # 第二步:将创建好的变量添加到列表
    lst.append(globals()[f'string{x}'])

print(lst)
# 输出: ['Hello', 'Hello', 'Hello', 'Hello', 'Hello', 'Hello', 'Hello', 'Hello', 'Hello']

如果你实际期望列表中保存的是变量名的字符串(比如['string0', 'string1', ...]),可以修改为:

lst = []
for x in range(0, 9):
    var_name = f'string{x}'
    globals()[var_name] = 'Hello'
    lst.append(var_name)

print(lst)
# 输出: ['string0', 'string1', 'string2', 'string3', 'string4', 'string5', 'string6', 'string7', 'string8']

2. 更优的替代方案

动态修改全局命名空间(globals())不是推荐的做法,容易引发命名冲突和代码维护问题。更安全的方式是使用字典来存储这些动态生成的键值对:

# 用字典存储动态变量,避免污染全局命名空间
dynamic_vars = {}
lst = []

for x in range(0, 9):
    var_name = f'string{x}'
    dynamic_vars[var_name] = 'Hello'
    lst.append(dynamic_vars[var_name])

print(lst)
# 输出: ['Hello', 'Hello', 'Hello', 'Hello', 'Hello', 'Hello', 'Hello', 'Hello', 'Hello']
# 如需访问对应"变量",直接通过字典键获取:dynamic_vars['string3']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 19:12:14