Python-Datenstruktur index Beginnen bei 1 anstelle von 0?
Ich habe eine seltsame Frage: ich habe diese Liste von 64 zahlen, dass wird sich nie ändern:
(2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128)
Brauche ich eine Datenstruktur in Python, das mir erlauben wird, accsess diese zahlen mit einem 1-64 index im Gegensatz zu den standard-0-63. Ist das möglich? Der beste Weg, dies zu erreichen sein, zu bauen ein Wörterbuch?
InformationsquelleAutor NASA Intern | 2012-07-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Legen Sie einfach eine
0
am Anfang der Struktur:Ich denke, es gibt keine andere Lösung, die gut funktionieren wird mit 1-Scheiben.
Wow, kann nicht glauben, es war so einfach.. ich war gonna verwenden Sie ein Wörterbuch.
Länge des Arrays nicht verwendet werden können, wie in diesem Ansatz. Hashmap würde dieses Problem beheben könnte aber ein overkill 🙂
InformationsquelleAutor Joel Cornett
Könnte man das überschreiben der item getter und machen eine spezielle Tupel:
InformationsquelleAutor kay
Könnte man ein Wörterbuch benutzt, oder Sie könnten einfach abziehen den index vor dem Zugriff auf Sie.
Ich auch, beachten Sie, dass Sie Ihre 64-Nummern sind in einer einfachen arithmetischen progression. Warum lagern Sie diese überhaupt? Sie können dieses verwenden:
Wenn die Liste, die Sie zeigte, war tatsächlich ein Beispiel, und die reellen zahlen sind komplizierter, dann verwenden Sie eine Liste mit dummy-element zuerst:
Dann können Sie sich 2 als
my_nums[1]
.Warum würden Sie beim speichern der Nummern von 2 bis 128? Doppelklicken Sie einfach Ihren index, und Sie haben die Nummer...
Gut, diese Nummern sind ID ' s aus canvas-Objekte. Ich kann nicht finden einen Weg, Sie zu ändern. Es ist ziemlich kompliziert
InformationsquelleAutor Ned Batchelder
Könnten Sie
range(2, 129, 2)
zu generieren die zahlen im Bereich von 1 - 128 in Schritten von 2 und konvertieren Sie die Liste in ein Tupel, wenn es auch nicht ändern.Angesichts der globalen Tupel
t
, Funktionnumbers
abgerufen werden konnten-Elemente mit Hilfe eines 1-basiert (anstatt 0-basiert) index.InformationsquelleAutor Levon