dictionary während iteration ändern, woruaf achten?
Verfasst: Mittwoch 21. März 2018, 11:51
Hallo 
ich wusste leider nicht wie ich die Frage bei google sinnvoll formulieren kann um Lösungen zu finden, deswegen mach ichs lieber hier:
Wann ist es möglich/sinnvoll in einem dictionary einträge während des iterierens zu ändern und wann nicht?
Die Änderung von value hat keinen Einfluss auf data.
Doch hier hat die Änderung von entry Einfluss auf data.
Kann man also vereinfacht sagen, wenn der zu verändernde Wert ein dictionary oder eine Liste ist, dann gehts und sonst nicht?
Oder sollte man, um auf Nummer sicher zu gehen, lieber immer alles voll ausschreiben, also im letzten Beispiel auch sicherheitshalber lieber:
data[k]["Preis"] = 5
schreiben? Sich also eine Vorgehensweise angewöhnen, die immer richtig ist, als es ausversehen falsch zu machen?

ich wusste leider nicht wie ich die Frage bei google sinnvoll formulieren kann um Lösungen zu finden, deswegen mach ichs lieber hier:
Wann ist es möglich/sinnvoll in einem dictionary einträge während des iterierens zu ändern und wann nicht?
Code: Alles auswählen
data = {"a":5}
for key, value in data.items():
if value==5:
data[key]= 10
print(data)
data = {"a":5}
for key, value in data.items():
if value==5:
value= 10 # wirkungslos
print(data)
Code: Alles auswählen
data = {"Hase":{"Preis":0,"Menge":1},"Hund":{"Preis":0,"Menge":0}}
for k,entry in data.items():
if entry["Menge"]==1:
entry["Preis"] = 5
print(data)
Kann man also vereinfacht sagen, wenn der zu verändernde Wert ein dictionary oder eine Liste ist, dann gehts und sonst nicht?
Oder sollte man, um auf Nummer sicher zu gehen, lieber immer alles voll ausschreiben, also im letzten Beispiel auch sicherheitshalber lieber:
data[k]["Preis"] = 5
schreiben? Sich also eine Vorgehensweise angewöhnen, die immer richtig ist, als es ausversehen falsch zu machen?