mghhzAnne

直观的栗子:

问题程序:

dict1={}
list1=[]
for va in range(5):
    dict1["num"]=va
    list1.append(dict1)

print(list1)

问题输出:

[{\'num\': 4}, {\'num\': 4}, {\'num\': 4}, {\'num\': 4}, {\'num\': 4}]

问题原因:个人理解是因为在循环中,加入列表的是变量地址,导致后面变量值变化后,地址上的值全部变化;如果程序里没有循环,那么没有这个问题,可能是循环的赋值机制问题导致

解决方法:把字典的定义放在循环内,相当于每次循环都赋了新地址

问题解决的程序:

list1=[]
for va in range(5):
    dict1 = {}
    dict1["num"]=va
    list1.append(dict1)

print(list1)

问题解决的输出:

[{\'num\': 0}, {\'num\': 1}, {\'num\': 2}, {\'num\': 3}, {\'num\': 4}]

 注意:变量字典初始化要和列表的添加元素句同等级

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-09-11
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-08
  • 2021-12-05
  • 2021-09-04
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-22
  • 2021-08-10
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案