Ausgabe von Zweidimensionaler Liste mit format

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
nieselfriem
User
Beiträge: 135
Registriert: Sonntag 13. Januar 2013, 16:00

Hallo,

ich habe die folgende Liste:

Code: Alles auswählen

[[0, 'ABC', 'DEF', 'GHI'], [0, '11', '12', '13'], [0, '21', '22', '23'], [0, '31', '32', '33'], [0, '41', '42', '43'], [0, '51', '52', '53']]
Diese möchte ich nun als Tabelle ausgeben lassen.
Also so

Code: Alles auswählen

0 ABC  DEF GHI
0  11  12   13
0  21  22   23
...

Nun habe ich folgende Ausgabe versucht:

Code: Alles auswählen

fm = ("{0:>3}{1:>6}{2:>6}{3:>6}")
print("{0:>3}{1:>6}{2:>6}{3:>6}".format("",x01,x02,x03))
for d3 in range(0,6):
    for d4 in range(0,4):
        print(fm.format(table[d3][d4]))#Fehler!!!
        print(table[d3][d4]) # Funktioniert
jedoch kommt es in der markierten Zeile zu folgender Fehlermeldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "passwordmatrix.py", line 33, in <module>
    print(fm.format(table[d3][d4]))
IndexError: tuple index out of range
Wo mach ich den Fehler? In der einfachen Ausgabe funktioniert die Ausgabe des Liste ohne Probleme. Oder hat er evtl. die Probleme damit, dass ich in der ersten Schleife eine Range von 0 bis 6 habe aber nur 4 Formatangaben im fm.-String habe? Wenn ja, wie löse ich das?

VG niesel
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Mal als Denkanstoß:

Code: Alles auswählen

> "{}{}{}{}".format(1)
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-1-e1c7c5ba4370> in <module>()
----> 1 "{}{}{}{}".format(1)

IndexError: tuple index out of range
Kapiert? ;-)

Zweiter Denkanstoß: Man kann in Python *direkt* über Elemente iterieren:

Code: Alles auswählen

matrix = ((1, 2), (3, 4))
for row in matrix:
    print("{}{}".format(*row))
>
12
34
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten