循环将字典插入列表前面字典值会被改变,请大大们指点迷津,代码如下:
n = 2
i = 0
data =[]
mydict = {}
while n>0:
mydict['a'] = n
mydict['b'] = n
data.append(mydict)
n -= 1
i += 1
print(data)
得到的结果是:
[{'a': 2, 'b': 2}]
[{'a': 1, 'b': 1}, {'a': 1, 'b': 1}]
想要的结果是:
[{'a': 2, 'b': 2}]
[{'a': 2, 'b': 2}, {'a': 1, 'b': 1}]
每次循环之前重新让字典为空就好了
n = 2
i = 0
data =[]
mydict = {}
while n>0:
mydict = {}
mydict['a'] = n
mydict['b'] = n
data.append(mydict)
n -= 1
i += 1
print(data)
使用copy库的deepcopy
代码如下
有帮助望采纳~
import copy
n = 2
i = 0
data = []
mydict = {}
while n > 0:
mydict['a'] = n
mydict['b'] = n
data.append(copy.deepcopy(mydict))
n -= 1
i += 1
print(data)