2012-12-16 14 views
7

Ich schreibe ein Programm, um Informationen über Länder in einem Tabellenformat anzuzeigen. Es funktionierte völlig in Ordnung, wenn ich drei Länder hatte, aber es bis 10 (und Einstellung alle notwendigen Codes entsprechend) führte zu dem Fehler zu ändern, „Tupelindex außerhalb des Bereichs“ in der Zeile:Python - "Tupel Index außerhalb des Bereichs"

print("{0:^20}{1:^20}{2:^20}{3:^20}{4:^20}{5:^20}[6:^20}{7:^20}{8:^20}{9:^20}".format(newcountrylist[i].country,newcountrylist[i].currency,newcountrylist[i].exchange)) 

Antwort

10

Sie müssen passieren in einer passenden Anzahl von Argumenten für Ihre Format-Slots. Ihre Formatzeichenfolge hat 10 Steckplätze, aber Sie geben nur 3 Werte weiter.

Reduziert auf 4-Format-Slots, mit nur drei Argumente .format(), zeigt den gleichen Fehler:

>>> '{0:^20}{1:^20}{2:^20}{3:^20}'.format(1, 2, 3) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
IndexError: tuple index out of range 
>>> '{0:^20}{1:^20}{2:^20}{3:^20}'.format(1, 2, 3, 4) 
'   1     2     3     4   ' 

Als ich in vier Argumente übergeben die .format() Aufruf erfolgreich ist.

+0

Ah ja, ich sehe was ich falsch gemacht habe. Vielen Dank! – keirbtre

0

Als eine Antwort auf jon141: Ich bin auch mit diesem Problem konfrontiert und ich versuche, dies zu lösen, indem Sie über ein Element einer Spalte (ich übergebe ein zweidimensionales Array) und dann bauen die Zeichenfolge basierend auf diesem. So habe ich am Ende mit einer Schnur wie

template="{0!s:10}{1!s:15}...{n!s:24} 

Die Elemente bis ich will ich in einem Tupel setzen zu formatieren. aber wenn ich

template.format(tuple_variable) 

es einen Fehler wirft, dass der Tupelindex außerhalb des Bereichs

ist

Wahrscheinlich, weil es jetzt ist ein Tupel eines Tupels auf die Funktion übergeben, die ein Element, das Tupel

Ich habe nicht herausgefunden, wie das noch zu beheben, aber folgen Sie der thread , wenn Sie weitere Informationen darüber benötigen.

Verwandte Themen