Seite 1 von 1

Ausgabe von Zweidimensionaler Liste mit format

Verfasst: Freitag 20. Februar 2015, 20:13
von nieselfriem
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

Re: Ausgabe von Zweidimensionaler Liste mit format

Verfasst: Freitag 20. Februar 2015, 20:42
von Hyperion
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