bin recht neu in Python und sehe das Problem nicht. Ich habe zwei Funktionen geschrieben, die mir zum einen den Inhalt einer verschachtelten Liste entsprechend des Pathes ausgibt und zum anderen den Inhalt nach Path durch Value ersetzt. Im Beispiel wird b durch die Funktion b=ChangeListValue(a, [1,1], 999) definiert. Allerdings ändert sich dadurch auch a. Warum?
Code: Alles auswählen
import c4d
#Welcome to the world of Python
# Wenn path bspw. [0,0] ist, dann wird der Inhalt liste[0][0] angesprochen
def GetListValue(list_, path):
value=list_
for i in path:
value=value[i]
return value
def ChangeListValue(list_, path, value):
for i in range(len(path)):
temp=GetListValue(list_,path[:len(path)-i-1])
temp[path[len(path)-1-i]]=value
value=temp
return temp
def main():
a = [[1,2],[3,4],6]
b = ChangeListValue(a, [1,1], 999)
print a #output: [[1, 2], [3, 999], 6]
print b #output: [[1, 2], [3, 999], 6]
Rown