list.append : Merkwürdiger Fehler (Vielleicht Python-Bug)
Verfasst: Dienstag 10. August 2021, 19:41
Hallo, Ich habe ein Programm geschrieben und finde keine logische Erklärung für den vorhandenen Fehler:
Skript 1:
#define variables
sol_y= [[9,6,1,4],[3,1,2,3]]
new=[]
#new=[[3,1,2,3]]
print("sol_y:"+str(sol_y))
print("---------------")
new.append(sol_y[1]) ######## first step
print("sol_y:"+str(sol_y))
print("new:"+str(new)+"\n")
new[-1].append((8)) ######## second step
print("sol_y:"+str(sol_y))
print("new:"+str(new))
Die Liste sol_y wird nicht verändert, allerdings wird nach "second step" der Wert 8 sowohl an die Liste "new" hinzugefügt (gewollt) als auch an die Liste
"sol_y" (nicht gewollt). Am besten Sie führen das Skript auf Ihrem eigenen PC aus.
Beim Skript 1 mit folgenden Änderungen, tritt der Fehler nicht auf:
Skript 2:
#define variables
sol_y= [[9,6,1,4],[3,1,2,3]]
#new=[]
new=[[3,1,2,3]]
print("sol_y:"+str(sol_y))
print("---------------")
#new.append(sol_y[1]) ######## first step
print("sol_y:"+str(sol_y))
print("new:"+str(new)+"\n")
new[-1].append((8)) ######## second step
print("sol_y:"+str(sol_y))
print("new:"+str(new))
Ich kann mir den Fehler leider nicht erklären. Können Sie mir behilflich sein?
Hier sind noch die Output beider Varianten:
Skript 1:
sol_y:[[9, 6, 1, 4], [3, 1, 2, 3]]
---------------
sol_y:[[9, 6, 1, 4], [3, 1, 2, 3]]
new:[[3, 1, 2, 3]]
sol_y:[[9, 6, 1, 4], [3, 1, 2, 3, 8]]
new:[[3, 1, 2, 3, 8]]
Skript 2:
sol_y:[[9, 6, 1, 4], [3, 1, 2, 3]]
---------------
sol_y:[[9, 6, 1, 4], [3, 1, 2, 3]]
new:[[3, 1, 2, 3]]
sol_y:[[9, 6, 1, 4], [3, 1, 2, 3]]
new:[[3, 1, 2, 3, 8]]
Skript 1:
#define variables
sol_y= [[9,6,1,4],[3,1,2,3]]
new=[]
#new=[[3,1,2,3]]
print("sol_y:"+str(sol_y))
print("---------------")
new.append(sol_y[1]) ######## first step
print("sol_y:"+str(sol_y))
print("new:"+str(new)+"\n")
new[-1].append((8)) ######## second step
print("sol_y:"+str(sol_y))
print("new:"+str(new))
Die Liste sol_y wird nicht verändert, allerdings wird nach "second step" der Wert 8 sowohl an die Liste "new" hinzugefügt (gewollt) als auch an die Liste
"sol_y" (nicht gewollt). Am besten Sie führen das Skript auf Ihrem eigenen PC aus.
Beim Skript 1 mit folgenden Änderungen, tritt der Fehler nicht auf:
Skript 2:
#define variables
sol_y= [[9,6,1,4],[3,1,2,3]]
#new=[]
new=[[3,1,2,3]]
print("sol_y:"+str(sol_y))
print("---------------")
#new.append(sol_y[1]) ######## first step
print("sol_y:"+str(sol_y))
print("new:"+str(new)+"\n")
new[-1].append((8)) ######## second step
print("sol_y:"+str(sol_y))
print("new:"+str(new))
Ich kann mir den Fehler leider nicht erklären. Können Sie mir behilflich sein?
Hier sind noch die Output beider Varianten:
Skript 1:
sol_y:[[9, 6, 1, 4], [3, 1, 2, 3]]
---------------
sol_y:[[9, 6, 1, 4], [3, 1, 2, 3]]
new:[[3, 1, 2, 3]]
sol_y:[[9, 6, 1, 4], [3, 1, 2, 3, 8]]
new:[[3, 1, 2, 3, 8]]
Skript 2:
sol_y:[[9, 6, 1, 4], [3, 1, 2, 3]]
---------------
sol_y:[[9, 6, 1, 4], [3, 1, 2, 3]]
new:[[3, 1, 2, 3]]
sol_y:[[9, 6, 1, 4], [3, 1, 2, 3]]
new:[[3, 1, 2, 3, 8]]