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

循环添加列表值遇问题:如何生成含不同Name值的字典列表?

解决循环添加字典到列表的重复值问题

问题原因

字典是可变对象,你在循环中始终修改同一个字典a,列表b里存储的都是这个字典的引用,所以最终所有元素都会显示最后一次修改后的结果。

修改方案

方案1:每次循环创建新字典

把字典的定义放到循环内部,确保每次迭代都生成一个全新的字典:

b = []

for i in range(1, 5):    
    a = {"Name": i}
    print(a)
    b.append(a)

print(b)

方案2:添加时复制字典

如果需要保留外部字典的定义,可以在添加到列表时复制当前字典的副本,避免引用同一个对象:

a = {}
b = []

for i in range(1, 5):    
    a["Name"] = i
    print(a)
    b.append(a.copy())  # 或使用 dict(a) 实现复制

print(b)

两种方案运行后都能得到预期结果:[{'Name': 1}, {'Name': 2}, {'Name': 3}, {'Name': 4}]

内容的提问来源于stack exchange,提问作者Duy Nhut Bui

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:06:30