Python:字典列表在每次迭代中仅存储最后附加的值

Python:字典列表在每次迭代中仅存储最后附加的值,第1张

Python:字典列表在每次迭代中仅存储最后附加的值

让我们逐步回顾一下循环主体的逻辑:

  1. 接受其中一项
  2. 修改它
  3. 将其附加到列表的末尾

因此,您错过的关键点是您修改并附加了第一步中选择的对象。并且在代码片段的末尾

word_db2
包含六个对象引用,但只有两个唯一。结果,输出显示相似的行。

您可以在修改和附加字典之前对其进行 浅表复制

for j in range(1, 4):    i = dict(i)    i['Card Type'] = 'Type '+str(j)    i['Card Key'] = key    print(i)    word_db2.append(i)    key += 1

进一步说明,如果dict包含其他可变对象(例如嵌套dict),则应进行 深层复制

import copyold_dict = {'a': [1, 2, 3], 'b': [4, 5, 6]}new_dict = copy.deepcopy(old_dict)old_dict['a'][1] = 7new_dict['a'][1] # 2


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5617577.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存