让我们逐步回顾一下循环主体的逻辑:
- 接受其中一项
- 修改它
- 将其附加到列表的末尾
因此,您错过的关键点是您修改并附加了第一步中选择的对象。并且在代码片段的末尾
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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)