Seite 1 von 1

Bestimmtes Element in Matrix ändern

Verfasst: Freitag 22. September 2017, 18:33
von CodeIt
Hallo,
ich bin Neuling in der Programmierung mit python und so stehe ich vor folgendem Problem:
Und zwar möchte ich eine 8x8 Matrix erzeugen, welche mit 0en vorbelegt ist.
Wenn ich jedoch versuche den Wert einzelner Werte der Matrix zu verändern, dann wird
die ganze Spalte der Matrix verändert.

Matrix = [[[None]]*8]*8
for i in range(0, len(Matrix)):
for j in range(0, len(Matrix)):
Matrix[j] = 0

Wenn ich jetzt z.B. versuche an der Stelle [0][0] den Wert 1 einzufügen mit

Matrix[0][0] = 1

dann wird die ganze erste Spalte der Matrix mit 1en belegt.

Für Hilfe wäre ich sehr dankbar

Re: Bestimmtes Element in Matrix ändern

Verfasst: Freitag 22. September 2017, 18:37
von Sirius3
@CodeIt: Du erzeugst nur eine Liste mit einem Element None, das Du 8 mal in eine andere Liste steckst, die Du 8 mal in eine dritte Liste einfügst.

Du willst aber 8 Listen mit 8 Nullen füllen:

Code: Alles auswählen

matrix = []
for i in range(8):
    matrix.append([0]*8)
oder kurz:

Code: Alles auswählen

matrix = [[0] * 8 for i in range(8)]

Re: Bestimmtes Element in Matrix ändern

Verfasst: Freitag 22. September 2017, 18:46
von CodeIt
super super, danke danke

Re: Bestimmtes Element in Matrix ändern

Verfasst: Freitag 22. September 2017, 20:16
von noisefloor
Hallo,

wenn du später auch damit Rechnen willst, dann empfiehlt sich unter Python der Einsatz von Numpy.

Da erzeugst du einen mit nullen vorbelegen 8x8 Array so:

[codebox=pycon file=Unbenannt.txt]>>> import numpy as np
>>> a = np.zeros([8,8], dtype=int)
>>> a
array([[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0]])
>>>
[/code]
Gruß, noisefloor