vorab, wenn ich im falschen Forum poste, sagt bescheid, dann verschiebe ich den Post.
Nun zu meinem Problem. Ich bin im Moment dabei, einen Ableitungs-Rechner zu erstellen. Die Funktion wird dabei in verschachtelten Listen aufbewahrt. Lasse ich die Funktion expAbleiten auf eine Liste los, so verändert sich ein Wert, der gar nicht angesprochen wird. Hier der Code:
Code: Alles auswählen
def grfAbleiten(Summand, var0int): #var0int=Variable of Interest.
end=len(Summand[2]) #how many variables to check?
for i in range (0,end,1): #which variable is asked for?
if(var0int==Summand[2][i]):
var0int=i #change var0int to list number
Ableitung=Summand
Ableitung[1]=int(Ableitung[3][var0int])*int(Ableitung[1])#actual derivation
print(Summand)
Ableitung[3][var0int]=int(Ableitung[3][var0int])-1 #actual derivation
print(Summand)
##print(Ableitung)
return(Ableitung)
def expAbleiten(Summand, var0int):
nachDif=grfAbleiten(Summand[1:],var0int) #Bisher nur für grfAbleitung
Ableitung=[5,nachDif,Summand] #Kettenregel der Ableitung
return Ableitung
>>> expAbleiten([2,4,5,["a","b"],[6,7,]],"a")
[4, 30, ['a', 'b'], [6, 7]]
[4, 30, ['a', 'b'], [5, 7]]
[5, [4, 30, ['a', 'b'], [5, 7]], [2, 4, 5, ['a', 'b'], [5, 7]]]
Das vorletzte Element im Ergebnis, also die Fünf in Liste[2][2][1] müsste eine Sechs sein. Seltsam ist, dass die Änderung eindeutig während der Ausführung der Fkt. grfAbleiten auftritt, was schon mal gar nicht sein kann. Findet jemand meinen Fehler? Oder gibt es ein bekanntes Problem mit zu verschachtelten Listen?
Vielen Dank im Vorraus!
