Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Patrick Rudin Newsgroups: de.comp.lang.python Subject: Re: for unpacking Date: Wed, 7 Aug 2024 11:54:48 +0200 Lines: 47 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: individual.net VYJa5+7NNzfmG+vz4NEQfwLCxph/H9M8PvsgECqlQnZWh3Ky/c Cancel-Lock: sha1:zZNKkwBnghhqJyrdX13pozh3gaU= sha256:KsOLcZPxBxyqRrXDNGJorBfU/ylTmtbMC0ZVLhY1jJM= User-Agent: Mozilla Thunderbird Content-Language: en-US In-Reply-To: Xref: csiph.com de.comp.lang.python:6142 Peter J. Holzer wrote: > On 2024-08-06 20:57, Patrick Rudin wrote: >> Ich kapier das nicht. Funktioniert unpacking nur lesend? > > Nein, aber int ist ein Immutable-Typ. Du kannst den Wert eines > int-Objekts nicht ändern. Oki. Hinter die Ohren geschrieben: Im Zweifelsfall immer neue Liste erzeugen. > Wenn Du nummern in-place ändern willst, musst Du wohl die Indizes > verwenden. > > Aber Du könntest auch eine List-Comprehension nehmen: > > nummern = [[a, b+c, c] for a, b, c in nummern] Ich hab hier rund ein Dutzend Variablen, an denen ich rumschraube. Am übersichtlichsten wäre wohl: zahlen = [[5,5,5]] zahlen.append([9,9,9]) for i, (a,b,c) in enumerate(zahlen): b += c zahlen[i] = [a,b,c] Bei vielen Variablen muss man dann halt verflucht aufpassen, dass man bei Erweiterungen die Reihenfolge peinlichst einhält. Elegant ist das nicht. Vermutlich wurden aus diesem Grund Klassen erfunden, in denen man klar und deutlich auf Attribute einzelner Instanzen zugreifen kann... > Es gibt einen sehr guten Vortrag zu dem Thema: > Ned Batchelder - Facts and Myths about Python names and values - PyCon 2015 > https://www.youtube.com/watch?v=_AEJHKGk9ns > Er fängt gut an, vermischt dann aber abstrakte Syntax mit konkretem Beispiel. Da komm ich dann innerlich nicht mehr mit... Gruss Patrick