Wörterbuch in einer Funktion updaten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
pixewakb
User
Beiträge: 1413
Registriert: Sonntag 24. April 2011, 19:43

Ich habe ein großes Wörterbuch und muss das updaten, wobei ich jetzt die einzelnen Operationen in Funktionen auslagern möchte. Ich habe mal folgendes gebastelt, um das Verfahren auszuprobieren. Der Quellcode ist bei mir sehr viel länger/komplexer, aber letztlich läuft es auf simple Zuweisungen hinaus:

Code: Alles auswählen

def update_wb(wb):
    wb["a"] = 1

wb = {}
wb["a"] = 2 # Die Zeile hilft mir nur zu verstehen, dass ich das Wörterbuch tatsächlich mittels Funktion updaten kann
update_wb(wb)

print(wb)
Ich erhalte als Ergebnis dann in der Konsole:

Code: Alles auswählen

{'a': 1}
Wenn ihr die Aufgabe bewältigen müsstet, würdet ihr es anders lösen? Gibt es einen sinnvolleren Weg, z. B. mit return?
Sirius3
User
Beiträge: 18269
Registriert: Sonntag 21. Oktober 2012, 17:20

So wie es jetzt ist, macht eine Funktion gar keinen Sinn. Was ist ein eigentliches Problem?
Benutzeravatar
pixewakb
User
Beiträge: 1413
Registriert: Sonntag 24. April 2011, 19:43

Ich habe zu viele Zuweisungen, weil das Wörterbuch ganz viele Datenreihen speichert und ich die alle bei jedem Durchlauf abhängig von Bedingungen updaten muss. Ich überlege jetzt die Logik einfach in Funktionen auszulagern und damit im Hauptprogramm verstehbare Codezeilen zu haben...

Erwarte beim Wörterbuch eher so etwas, wobei die Buchstaben für einzelne Berechnungen oder Datenreihen (die Variablennamen sind besser vergeben) stehen:
wb["a"] = ...
wb["b"] = ...
wb["c"] = ...
wb["d"] = ...
wb["e"] = ...
wb["f"] = ...
wb["g"] = ...
wb["h"] = ...
wb["i"] = ...
wb["j"] = ...
wb["k"] = ...
wb["l"] = ...
wb["m"] = ...
wb["n"] = ...
wb["o"] = ...
wb["p"] = ...
wb["q"] = ...
wb["r"] = ...
wb["s"] = ...
wb["t"] = ...
wb["u"] = ...
wb["v"] = ...
wb["w"] = ...
wb["x"] = ...
wb["y"] = ...
wb["z"] = ...

Leider nur sehr viel mehr verschachtelt und unübersichtlich. Mit den Funktionen möchte ich meinen Quellcode aufräumen...
Sirius3
User
Beiträge: 18269
Registriert: Sonntag 21. Oktober 2012, 17:20

Liest sich eher so, als ob Du mit Klassen arbeiten solltest.
Benutzeravatar
pixewakb
User
Beiträge: 1413
Registriert: Sonntag 24. April 2011, 19:43

Sirius3 hat geschrieben: Donnerstag 31. Januar 2019, 22:38 Liest sich eher so, als ob Du mit Klassen arbeiten solltest.
Danke. Darauf wäre ich nicht gekommen. Ich schaue mir den Quellcode noch mal von dieser Seite an, ich weiß noch nicht, wie ich das machen kann (es handelt sich um unterschiedliche Datenreihen), aber Dein Vorschlag leuchtet ein.
Antworten