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
Wenn Sie vor dem Start keine Größenangaben haben, erstellen Sie zwei eindimensionale Listen.
list 1: To store rows
list 2: Actual two-dimensional matrix
Die gesamte Zeile in der 1. Liste speichern. Sobald dies geschehen ist, hängen Sie Liste 1 an Liste 2 an:
from random import randint
coordinates=[]
temp=[]
points=int(raw_input("Enter No Of Coordinates >"))
for i in range(0,points):
randomx=randint(0,1000)
randomy=randint(0,1000)
temp=[]
temp.append(randomx)
temp.append(randomy)
coordinates.append(temp)
print coordinates
Ausgabe:
Enter No Of Coordinates >4
[[522, 96], [378, 276], [349, 741], [238, 439]]
Mit Hilfe der Liste :
matrix_in_python = [['Roy',80,75,85,90,95],['John',75,80,75,85,100],['Dave',80,80,80,90,95]]
mit Hilfe von dict: Sie können diese Informationen auch in einer Hash-Tabelle speichern, um schnell suchen zu können.
matrix = { '1':[0,0] , '2':[0,1],'3':[0,2],'4' : [1,0],'5':[1,1],'6':[1,2],'7':[2,0],'8':[2,1],'9':[2,2]};
matrix['1'] liefert Ihnen das Ergebnis in O(1) Zeit
*nb : Sie müssen mit einer Kollision in der Hash-Tabelle umgehen
Seien Sie auf diese Weise vorsichtig, denn Matrix[0], Matrix[1], ..., Matrix[4]
zeigen alle auf das gleiche Array, so dass nach Matrix[0][0] = 3
würden Sie erwarten Matrix[0][0] == Matrix[1][0] == ... == Matrix[4][0] == 3
.
Danke gongzhitaao für deinen Kommentar. Hätte ich ihn früher gelesen, hätte ich mindestens eine halbe Stunde gespart. Eine Matrix zu haben, bei der jede Zeile auf dieselbe Stelle im Speicher verweist, scheint nicht sehr nützlich zu sein, und wenn man sich nicht bewusst ist, was man tut, ist es sogar gefährlich! Ich bin mir ziemlich sicher, dass dies NICHT das ist, was Masoud Abasian, der die Frage gestellt hat, tun will.
Sie sollten diese Antwort streichen, da sie nicht korrekt ist. Anfänger könnten verwirrt sein.
Hier ist der Codeschnipsel für die Erstellung einer Matrix in Python:
# get the input rows and cols
rows = int(input("rows : "))
cols = int(input("Cols : "))
# initialize the list
l=[[0]*cols for i in range(rows)]
# fill some random values in it
for i in range(0,rows):
for j in range(0,cols):
l[i][j] = i+j
# print the list
for i in range(0,rows):
print()
for j in range(0,cols):
print(l[i][j],end=" ")
Bitte schlagen Sie vor, wenn ich etwas übersehen habe.
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?