Ich bin ein Text-Abenteuer, und ich habe ein System erstellt, wo der Benutzer einen Bereich und die Objekte in der Umgebung beobachten kann.Position der Wörterbuchschlüssel erkennen
Zum Beispiel kann ein Benutzer einen Bereich beobachten, wie:
„Eine milde, ruhige Wüste Sie können eine Katze sehen, eine Maus und einen Besen.“
Es erstellt eine Liste der Elemente mit einer Nummer vor jeder Verwendung einer for-Schleife.
- Nehmen oder beobachten Katze
- Nehmen oder beobachten Maus
usw.
Ich möchte wissen, wie ich eine Nummer, die jedem dict Eintrag zuweisen können, wie es im Text erscheint.
{"cat":1, "mouse":1, "broom":1}
Der Wert für jeden Schlüssel ist, wie viele Instanzen des Objekts angezeigt wird. Wie lasse ich meinen Code zulassen, dass jeder Schlüssel einen Wert ASIDE von seinem Wörterbuchwert hat, um in der Reihenfolge referenziert werden zu können?
Der Benutzer sollte in der Lage sein, die Nummer seiner Antwort entsprechend der nummerierten Liste einzugeben. Wenn sie '1' wählen, wählen sie die Katze, und das kann sich ändern, je nachdem, was "Objekt Nummer 1" in diesem Wörterbuch ist, welches sich ändert in welchem Bereich sich der Benutzer gerade befindet.
Wenn der Benutzer ist in einer dunklen Höhle, vielleicht "Gegenstand Nr. 1" in diesem GLEICHEN Wörterbuch wird zu "Hund" geändert. Der Benutzer sollte in der Lage sein, "1" zu wählen und einen DOG anstelle eines CAT zu beobachten ...
Also, wie kann ich erkennen, welcher Schlüssel in welcher Position eines Wörterbuchs ist?
definiert der Benutzer das Wörterbuch oder wird es vom Programmierer initialisiert? –
Dict-Einträge haben keine * Positionen. Wenn Sie eine Reihenfolge der Schlüssel darstellen möchten, ist es normalerweise am besten, das separat zu verfolgen. Es gibt 'collections.OrderedDict', aber das verfolgt die Reihenfolge nach eigenen Regeln, über die Sie nicht viel Kontrolle haben. – user2357112
oder Sie könnten sich [dict.items()] (https://docs.python.org/3.5/library/stdtypes.html#dict.items) ansehen – bobsterman