Ich möchte ein zweidimensionales Array ohne eine initialisierte Länge wie folgt definieren:
Matrix = [][]
Dies führt jedoch zu einem Fehler:
IndexError: Listenindex außerhalb des Bereichs
Ich möchte ein zweidimensionales Array ohne eine initialisierte Länge wie folgt definieren:
Matrix = [][]
Dies führt jedoch zu einem Fehler:
IndexError: Listenindex außerhalb des Bereichs
Eine Neufassung zum leichteren Lesen:
# 2D array/ matrix
# 5 rows, 5 cols
rows_count = 5
cols_count = 5
# create
# creation looks reverse
# create an array of "cols_count" cols, for each of the "rows_count" rows
# all elements are initialized to 0
two_d_array = [[0 for j in range(cols_count)] for i in range(rows_count)]
# index is from 0 to 4
# for both rows & cols
# since 5 rows, 5 cols
# use
two_d_array[0][0] = 1
print two_d_array[0][0] # prints 1 # 1st row, 1st col (top-left element of matrix)
two_d_array[1][0] = 2
print two_d_array[1][0] # prints 2 # 2nd row, 1st col
two_d_array[1][4] = 3
print two_d_array[1][4] # prints 3 # 2nd row, last col
two_d_array[4][4] = 4
print two_d_array[4][4] # prints 4 # last row, last col (right, bottom element of matrix)
Um eine Matrix aus Nullen (Einsen) zu deklarieren:
numpy.zeros((x, y))
z.B..
>>> numpy.zeros((3, 5))
array([[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]])
oder numpy.ones((x, y)) z.B.
>>> np.ones((3, 5))
array([[ 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1.]])
Sogar drei Dimensionen sind möglich. ( http://www.astro.ufl.edu/~warner/prog/python.html siehe --> Mehrdimensionale Arrays)
Sie können eine leere zweidimensionale Liste erstellen, indem Sie zwei oder mehr eckige Klammern oder eine dritte Klammer verschachteln ( []
, getrennt durch ein Komma) mit einer eckigen Klammer, so wie unten:
Matrix = [[], []]
Nehmen wir nun an, Sie wollen 1 an Matrix[0][0]
dann tippen Sie:
Matrix[0].append(1)
Geben Sie nun Matrix ein und drücken Sie die Eingabetaste. Die Ausgabe wird sein:
[[1], []]
Wenn Sie stattdessen die folgende Anweisung eingeben
Matrix[1].append(1)
dann würde die Matrix lauten
[[], [1]]
Ich arbeite gerade an meinem ersten Python-Skript, und das Beispiel mit der quadratischen Matrix hat mich ein wenig verwirrt. Ich hoffe, das folgende Beispiel hilft Ihnen, etwas Zeit zu sparen:
# Creates a 2 x 5 matrix
Matrix = [[0 for y in xrange(5)] for x in xrange(2)]
so dass
Matrix[1][4] = 2 # Valid
Matrix[4][1] = 3 # IndexError: list index out of range
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
18 Stimmen
Man muss nicht Arrays definieren oder irgendetwas anderes. Sie können jedoch mehrdimensionale Sequenzen erstellen, wie die Antworten hier zeigen. Denken Sie daran, dass Python Variablen sind untypisiert, aber Werte sind stark typisiert.
2 Stimmen
Ich bin verwirrt. Von anderen Sprachen kommend: es IST ein Unterschied zwischen einem 1D-Array, das 1D-Arrays enthält und einem 2D-Array. Und AFAIK gibt es keine Möglichkeit, ein mehrdimensionales Array (oder Liste) in Python zu haben. Sollte hier gesagt werden...
4 Stimmen
Siehe auch die Python3-FAQ auf Wie kann ich eine mehrdimensionale Liste erstellen?