Umwickeln auf eine Liste, wenn list index out of range
Ich bin auf der Suche für einige code-Verbesserungen, oder eine vorgefertigte version von dem, was ich habe umgesetzt mir, als ich denke, es könnte, oder sollte, ein sauberer Weg, das zu erreichen, was ich will.
Ich Schreibe ein Stück software zu konvertieren, guitar tabs, die in der klassischen notation, die ich brauche, um die Zahl zu konvertieren auf eine Registerkarte, um es den entsprechenden Hinweis, und es wäre nützlich für die Entwicklung einer Liste der einzelnen Zeichenfolgen Hinweis von den Start-string.
Habe ich eine Liste mit Notizen, (a - g#) und eine Liste von Bünde (0, 21).
Notes[Bund] funktioniert gut für die ersten elf Noten, aber nach, dass ich offensichtlich ein " out of index Fehlermeldung.
Den code habe ich um dieses hier:
notes = ["a", "a#", "b", "c", "c#", "d", "e", "f", "f#", "g", "g#"]
note = 21
while note >= len(notes):
note -= 11
try:
print notes[note]
except:
continue
Es funktioniert, aber es scheint ein bisschen lang, gibt es einen besseren Weg, dies zu tun?
- Sie sind nicht vergessen "d#" ? Wenn ja, mit '%' wie "notes[Hinweis: % len(notes)]" ein guter Weg zu gehen, da es automatisch korrigieren, ändern der Liste mit den Größen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die die
%
- operator zu produzieren, ein E-Modul:Demo:
oder in einer Schleife:
Verwenden Sie den modulo-operator:
Anderen Optionen ist die Verwendung itertools.Zyklus