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

能否用f-strings在for循环中创建列表并迭代追加数据?求替代方案

问题解答

原实现是否可行?

不行。你写的代码里直接用f"abc{b}" = []这种方式创建变量是Python语法不允许的,Python不支持通过格式化字符串直接作为变量名进行赋值操作,运行时会直接抛出语法错误。

替代方案

方案1:使用字典存储(推荐)

用字典来映射动态生成的名称和对应的列表,这是Python中处理此类动态命名需求的标准做法,既安全又易维护:

lists_dict = {}
for b in range(1, 5):
    key = f"abc{b}"
    lists_dict[key] = []
    d = f"***{b}"
    lists_dict[key].append(d)

# 访问方式
print(lists_dict["abc1"])  # 输出: ['***1']
print(lists_dict["abc2"])  # 输出: ['***2']

方案2:修改全局/局部命名空间(不推荐)

如果非要创建独立的变量,可以通过globals()或locals()字典来实现,但这种方式会污染命名空间,容易引发变量名冲突,调试和维护难度大,不建议在生产代码中使用:

for b in range(1, 5):
    var_name = f"abc{b}"
    globals()[var_name] = []
    d = f"***{b}"
    globals()[var_name].append(d)

# 访问方式
print(abc1)  # 输出: ['***1']
print(abc2)  # 输出: ['***2']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:30:52