Hallo also lassen Sie uns sagen, ich habe ein 2D-Array a = [[1,2,1,2], [3,4,5,3], [8,9,4,3]]
und ich möchte dies in einer Raster-ähnlichen Tabelle ausdrucken. Bisher ist der Code, den ich habe, ist:Wie drucke ich ein 2D-Array in einem "hübschen" Format?
def printArray(a):
for row in range(len(a[0])):
for col in range (len(a[0])):
b = print("{:8.3f}".format(a[row][col]), end = " ")
print(b)
Wenn diese ausgedruckt wird, gibt mir:
1.000 2.000 1.000 2.000 None
3.000 4.000 5.000 3.000 None
8.000 9.000 4.000 3.000 None
Und dann den Fehler:
File "hw8pr2.py", line 17, in printArray
b = print("{:8.3f}".format(a[row][col]), end = " ")
IndexError: list index out of range
Kann mir jemand sagen, warum das so ist Ereignis? Ich will auch nicht das "None" am Ende jeder Zeile. Ich will es Ausgabe:
1.000 2.000 1.000 2.000
3.000 4.000 5.000 3.000
8.000 9.000 4.000 3.000
Sie müssen keine Variable deklarieren, um Dinge auszudrucken. Es gibt keine zurück, da die Variable b tatsächlich nichts mehr hat, sobald die for-Schleife mit der Variablen b vorbei ist. Entferne die letzte Zeile. – JackTheCrab
Sie verwenden 'len (a [0])' für Spalten und Zeilen. Wenn Sie eine quadratische Matrix haben, würde es funktionieren, aber das ist nicht der Fall für das Beispiel, das Sie angegeben haben. –
Um hübsche Tabellen zu drucken, hat Python ein Modul namens [prettytable] (https://pypi.python.org/pypi/PTable/0.9.2). – Efferalgan