dictoraries key problems

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
Eragpm
User
Beiträge: 14
Registriert: Mittwoch 10. Juni 2020, 23:20

Code: Alles auswählen

self.ways = dict()
        self.ways_keys = self.ways.keys()
        self.board_size = 2
        self.ways[(0, 0)] = Way("+2 Elexier",  # x für + rechts - links y für oben unten
                                list(True for i in range(6)),
                                list(False for i in range(6)))
                                
ich habe einen key aus zwei ints soll die koordinaten wiederspiegeln
jetzt ist mein problem ich kann nicht auf einen einzeln int von den zweien zugreifen, dass brauch ich aber für die Gui
gibt es eine bessere Möglichkeit das zuSpeichern ?
warum kann ich nicht auf die einzelnen KeyWerte zugreifen ?
mit self.ways_keys kann ich die Folge auch aus printen aber nicht zugreifen
Benutzeravatar
__blackjack__
User
Beiträge: 14190
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Eragpm: Das ist halt ein Tupel. Auf die Elemente kann man per Index zugreifen oder mit einer Zuweisung an passende Namen zuweisen.

Warum erstellst Du erst ein leeres Wörterbuch um danach dann ein Schlüssel/Wert-Paar einzufügen, statt gleich ein Wörterbuch mit diesem Paar zu erstellen?

Die beiden Listen mit den Wahrheitswerten liessen sich mit ``*`` erstellen, weil die Wahrheitswerte unveränderbar sind. In diesem Fall sogar Singletons.

`ways_keys` erscheint mir etwas redundant. Man hat ja über `self` auch Zugriff auf `ways`, warum dann noch das Proxy-Objekt für die Schlüssel noch an `self` binden?

Code: Alles auswählen

    def __init__(self):
        self.ways = {(0, 0): Way("+2 Elexier", [True] * 6, [False] * 6)}
        self.board_size = 2
“Every thinking person fears nuclear war and every technological nation plans for it. Everyone knows
it's madness, and every country has an excuse.” — Carl Sagan, Cosmos, Episode 13: Who Speaks for Earth?
Antworten