Kodun altındayım, Çıktı çok garip geliyor. Yanlış gidiyorSözlüküm neden Python'da güncellenmiyor?
{'a': [[{'InstanceID': u'BIOS.Setup.1-1:Slot3'}], [{'InstanceID': u'BIOS.Setup.1-1:Slot4'}], [{'InstanceID': u'BIOS.Setup.1-1:Slot2'}], [{'InstanceID': u'BIOS.Setup.1-1:Slot5'}], [{'InstanceID': u'BIOS.Setup.1-1:Slot1'}]]}
arıyorum olarak nerede
wsman_invoke_attr = {}
l = [u'BIOS.Setup.1-1:Slot3', u'BIOS.Setup.1-1:Slot2', u'BIOS.Setup.1-1:Slot1', u'BIOS.Setup.1-1:Slot5', u'BIOS.Setup.1-1:Slot4']
w = []
k = {"a":w}
for i in l:
wsman_invoke_attr["InstanceID"] = i
w.append([wsman_invoke_attr])
k["a"] = copy.deepcopy(w)
wsman_invoke_attr.clear()
print k
çıkış {'a': [[{'InstanceID': u'BIOS.Setup.1-1:Slot4'}], [{'InstanceID': u'BIOS.Setup.1-1:Slot4'}], [{'InstanceID': u'BIOS.Setup.1-1:Slot4'}], [{'InstanceID': u'BIOS.Setup.1-1:Slot4'}], [{'InstanceID': u'BIOS.Setup.1-1:Slot4'}]]}
olarak geliyor?
Kodun "düzeltmesi", "k [" a "] = copy.deepcopy (w)' yi 'w = copy.deepcopy (w) ile değiştirmektir; k ["a"] = w' ama daha iyi bir çözüm, bir yazıcının başına bir liste kavrayışına yeniden yapılanmaktır. – zehnpaard