verwenden Sie einen Bereich als dictionary-Schlüssel in Python, welche option habe ich?

Dies ist mein Erster Beitrag und ich bin Recht neu beim Programmieren, so könnte ich nicht in der Lage sein, zu vermitteln, meine Frage angemessen, aber ich werde mein bestes tun!

tries_dict = {1:'first', 2:'second', 3:'third', 4:'fourth', ub_tries:'last'}

ub_tries = user input

tries = 1

input ('\nCome on make your ' + tries_dict.get(tries) + guess: ')

Diese 3 Elemente sind Teil einer Zahl erraten Spiel, das ich geschaffen, und ich enthalten Sie in einem while Schleife, wo tries += 1 nach jeder falschen Antwort.

Wie Sie sehen können, in meinem Wörterbuch gibt es eigene Werte für die erste 4 Antworten und die Letzte chance, bevor das Spiel vorbei ist, also hier ist was ich versucht habe:

Ich wollte einen Weg finden, um die 'NÄCHSTE' - Wert für jede Antwort/Schlüssel zwischen der 'vierten' und 'last'.

In:

tries = 5

Come on make your next guess

tries = 6

Come on make your next guess

und so weiter

Habe ich einen Weg finden, mit einigen komplexen Schleifen, aber der neugierige Typ, ich wollte wissen effizienter/praktische Möglichkeiten, dies zu erreichen.

Hier sind einige Möglichkeiten, ich dachte darüber nach, konnte Sie aber nicht bekommen, um zu arbeiten:

  1. Mit einer Reihe als Schlüssel
  2. Einen Weg zu finden, um eine Liste mit Werten zwischen 4 und ub_tries und mit dieser Liste als Schlüssel

So generell: wie kann man es schaffen, eine Möglichkeit zu haben, diese Allgemeine Antwort (in der nächsten oder was auch immer) für Schlüssel, die nicht in einem Wörterbuch?

Jedes feedback würde sehr geschätzt werden, fühlen Sie sich frei, um Erklärungen zu bitten, da kann ich mir, meine Frage ist irgendwie chaotisch.

Ich hoffe ich bekomme mehr crafty sowohl bei der Programmierung und zu Fragen Verwandte Fragen, so weit meine Programmierung ist fast so chaotisch wie meine Zusammenfassung Fähigkeiten, seufz!

  • Sind Sie gerade auf der Suche nach: tries_dict.get(tries, 'next')?
  • PS, die Sie verwenden können, eine range als Schlüssel (das ist in Python 3 und Python 2, es ist ein xrange), aber ich sehe nicht, wie, hilft dir hier. Sie würden dann einen range zu tun, die später lookups, und wo sollte dieser herkommen?
  • ich weiß nicht wirklich den Punkt über dict.bekommen, es ist keine Taste für "weiter", also wie könnte ich es bekommen? nun, ich habe darüber nachgedacht, über einen Bereich, wie in range (5,ub_tries), diesen Bereich der Arbeit als Schlüssel für den Wert 'Weiter'
  • Haben Sie Lesen Sie meine Antwort? Die Idee ist, dass 'next' ist der Standardwert, der Sie wieder für jede Taste, die Sie noch nicht definiert ist, einen Wert für. So bekommen Sie es durch den Aufruf get mit jedem Wert außer 1, 2, 3, 4, oder ub_tries. Das ist genau das, was Sie wollen, richtig?
  • Inzwischen, wenn Sie range(5, ub_tries) wie einen Schlüssel, das ist in Ordnung, aber wie wird es helfen? Zum Beispiel tries_dict[range(5, ub_tries)] = 'next' ist in Ordnung, aber dann tries_dict[6] ist immer noch ein KeyError, weil 6 ist nicht der gleiche Schlüssel wie range(5, ub_tries).
InformationsquelleAutor Newbie | 2012-11-19
Schreibe einen Kommentar