Seite 1 von 1

Wörterbuch in einer Funktion updaten

Verfasst: Donnerstag 31. Januar 2019, 22:03
von pixewakb
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?

Re: Wörterbuch in einer Funktion updaten

Verfasst: Donnerstag 31. Januar 2019, 22:10
von Sirius3
So wie es jetzt ist, macht eine Funktion gar keinen Sinn. Was ist ein eigentliches Problem?

Re: Wörterbuch in einer Funktion updaten

Verfasst: Donnerstag 31. Januar 2019, 22:20
von pixewakb
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...

Re: Wörterbuch in einer Funktion updaten

Verfasst: Donnerstag 31. Januar 2019, 22:38
von Sirius3
Liest sich eher so, als ob Du mit Klassen arbeiten solltest.

Re: Wörterbuch in einer Funktion updaten

Verfasst: Donnerstag 31. Januar 2019, 22:54
von pixewakb
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.