Seite 1 von 1

Element aus Listen entfernen

Verfasst: Montag 26. Dezember 2016, 16:21
von pikophallus
Frohe Weihnachten zusammen,

ich bin gerade ein wenig am Verzweifeln. Als Übung wollte ich in Python eine Funktion zur Berechnung von Determinaten implementieren, allerdings stimmt mit meinen Listen, in denen ich die Matrix speichere, irgendetwas nicht.
Der Code:

Code: Alles auswählen

liste = [[1,2,3], [4,5,6], [7,8,9]]
matrix = list(liste)
for i in range(len(matrix)):
    matrix[i].pop(0)
matrix.pop(0)
print(liste)
print(matrix)
Das Problem ist nun, dass die anfangs kopierte Liste "liste" auch in der for-Schleife verändert wird.
Ausgabe:
[[2, 3], [5, 6], [8, 9]]
[[5, 6], [8, 9]]

Weiß jemand, warum und wie man das umgehen kann?
Danke schonmal

Re: Element aus Listen entfernen

Verfasst: Montag 26. Dezember 2016, 16:49
von DasIch
pikophallus hat geschrieben:Das Problem ist nun, dass die anfangs kopierte Liste "liste" auch in der for-Schleife verändert wird.
Ist es das?
Ausgabe:
[[2, 3], [5, 6], [8, 9]]
[[5, 6], [8, 9]]
Wie kommt es dass die ursprüngliche Liste noch 3 Elemente hat wenn sie verändert wurde, so wie annimmst?

Veränderungen an der Kopie haben keinen Einfluss auf das Original. Kopie und Original haben allerdings dieselben (nicht nur die die gleichen) Listen als Inhalt.

Re: Element aus Listen entfernen

Verfasst: Montag 26. Dezember 2016, 17:16
von pikophallus
Vielen Dank! Der letzte Satz war der ausschlaggebende Punkt. Ich wusste nicht, dass die Listen, die die Elemente der großen Liste sind, dieselben sind, und somit auch vom Vorgänger verändert wurden. Jetzt geht's jedenfalls. :)