我有一个嵌套的列表x。内部列表有字典作为元素。
y = [{'hello1': 1, 'hello2': 2, 'hello3': 3}, {'hello1': 1, 'hello2': 2, 'hello3': 3}]
x = []
for i in range(0,3):
x.append(y)
counter = 5
for i in x:
for j in i :
j['hello2'] = counter
counter = counter + 1
print(x)
我得到的输出
[
[
{
'hello1': 1,
'hello2': 7,
'hello3': 3
},
{
'hello1': 1,
'hello2': 7,
'hello3': 3
}
],
[
{
'hello1': 1,
'hello2': 7,
'hello3': 3
},
{
'hello1': 1,
'hello2': 7,
'hello3': 3
}
],
[
{
'hello1': 1,
'hello2': 7,
'hello3': 3
},
{
'hello1': 1,
'hello2': 7,
'hello3': 3
}
]
]
我正在寻找的输出
[
[
{
'hello1': 1,
'hello2': 5,
'hello3': 3
},
{
'hello1': 1,
'hello2': 5,
'hello3': 3
}
],
[
{
'hello1': 1,
'hello2': 6,
'hello3': 3
},
{
'hello1': 1,
'hello2': 6,
'hello3': 3
}
],
[
{
'hello1': 1,
'hello2': 7,
'hello3': 3
},
{
'hello1': 1,
'hello2': 7,
'hello3': 3
}
]
]
我希望第一个列表的hello2值为5,第二个列表的ello2值为6,第三个列表的hello2值为7。请向我提供所需修改的有效输入。谢谢
Dict是可变的,所以在每次迭代时都添加相同的Dict,所以每次更新相同的Dict.
你需要做一个副本:
x.append(deepcopy(y))