ich bin neu hier und traue mich mal, eine vermutlich sehr simple Frage zu stellen, die mich aber seit einiger Zeit beschäftigt.
wenn ich eine Liste durch die .append Funktion an eine (zunächst leere) Liste anhänge:
Code: Alles auswählen
l1 = []
l2 = [2]
l1.append(l2)
l1
Code: Alles auswählen
out: [[2]]
Code: Alles auswählen
l2 = [3]
l1
Code: Alles auswählen
out: [[2]]
Wenn ich das gleiche aber in einer For-Schleife mache:
Code: Alles auswählen
l1 = []
l2 = []
for i in range(3):
l2.append(i)
l1.append(l2)
l1
Code: Alles auswählen
Out: [[0, 1, 2], [0, 1, 2], [0, 1, 2]]
Wenn ich die Liste in einer Variablen zwischenspeichere und sie vorher in eine Liste konvertriere, funktiert es:
Code: Alles auswählen
l1 = []
l2 = []
for i in range(3):
l2.append(i)
l_help = list(l2)
l1.append(l_help)
l1
Code: Alles auswählen
Out: [[0], [0, 1], [0, 1, 2]]
Das list() macht ja aus dem Argument eine Liste. Aber gemäß type(l2) und type(l_help) sind beide bereits vom Typ Liste.
Ich habe die "Lösung" für mein Problem also im Prinzip gefunden, aber ich würde gerne verstehen, warum Python so tut wie es tut. Vielleicht kann mir jemand weiterhelfen.
Vielen Dank schon mal.