On 2024-08-07 09:57, Patrick Rudin <taxi...@gmx.ch> wrote: > Mike Müller wrote: >> nummern = [[5,5,5]] >> nummern.append([9,9,9]) >> >> for a,b,c in nummern: >> print('vorher: ', id(b)) >> b += c >> print('nachher:', id(b)) >> >> >> Ausgabe: >> >> vorher: 4375044856 >> nachher: 4375045016 >> vorher: 4375044984 >> nachher: 4375045272 > > Das hilft aber nicht weiter, weil: > > zahlen = [[5,5,5]] > zahlen.append([9,9,9]) > > for t in zahlen: > print('vorher: ', id(t[1])) > t[1] += t[2] > print('nachher:', id(t[1])) > > vorher: 11743656 > nachher: 11743816 > vorher: 11743784 > nachher: 11744072 > > Kurzum: Auch da wird ein neues Objekt erzeugt.
Ja, aber dieses neue Objekt weist Du dem richtigen Namen zu. Wenn wir von Deinem Code mal alles weglassen, was nur verwirrt, dann bleibt übrig: t = [5, 5, 5] t[1] = t[1] + t[2] bzw. t = [5, 5, 5] a = t[0] b = t[1] c = t[2] b = b + c Ich glaube, es sollte unmittelbar klar sein, dass im zweiten Fall t[1] noch auf das alte Objekt (mit dem Wert 5) zeigt und nicht auf das neue (mit dem Wert 10). Denn dieses wird ja an b zugewiesen, und nicht an t[1], wie im ersten Fall. hp _______________________________________________ python-de Mailingliste -- python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an python-de-le...@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: arch...@mail-archive.com