Temp = {}
Final = {}
OK =['OK','OK']
NOTOK =['NOTOK','NOTOK']
Temp[1] = OK
Final['u1']=Temp
print(Final)
Temp.clear()
Temp[2] = OK
Final['u2']=Temp
print(Final)
Temp.clear()
Temp[3] = NOTOK
Final['u3']=Temp
print(Final)
想知道为什么最后一次打印会覆盖以前的打印,需要帮助。 它与我当前的项目有关,这是我使用的简单术语,即如何使u3 dict(NOTOK)不替换u1和u2内容(确定)。
实际结果
{'u1': {1: ['OK', 'OK']}}
{'u1': {2: ['OK', 'OK']}, 'u2': {2: ['OK', 'OK']}}
{'u1': {3: ['NOTOK', 'NOTOK']}, 'u2': {3: ['NOTOK', 'NOTOK']}, 'u3': {3: ['NOTOK', 'NOTOK']}}
预期结果
{'u1': {1: ['OK', 'OK']}}
{'u1': {2: ['OK', 'OK']}, 'u2': {2: ['OK', 'OK']}}
{'u1': {3: ['OK', 'OK']}, 'u2': {3: ['OK', 'OK']}, 'u3': {3: ['NOTOK', 'NOTOK']}}
答案 0 :(得分:0)
使用.copy()
Temp = {}
Final = {}
OK =['OK','OK']
NOTOK =['NOTOK','NOTOK']
Temp[1] = OK.copy()
Final['u1']=Temp.copy()
print(Final)
Temp.clear()
Temp[2] = OK.copy()
Final['u2']=Temp.copy()
print(Final)
Temp.clear()
Temp[3] = NOTOK.copy()
Final['u3']=Temp.copy()
print(Final)