Seite 1 von 1
List-Comprehensin
Verfasst: Samstag 25. Juni 2016, 12:31
von Septias
Hallo,
Ich habe eine Liste mit zwei Items z.B
Nun brauche ich ne abgewandelte Form von der Liste in einer anderen Variabel.
Ich würde nun gerne bei der Wertzuweisung gleichzeitig ein paar Items aus der Liste Veränder. Geht das ?
Re: List-Comprehensin
Verfasst: Samstag 25. Juni 2016, 13:33
von snafu
Mach eine neue LC, wo die Veränderungen zum Tragen kommen. Beispiel:
Code: Alles auswählen
values = [1,2,3,4,5,6,7,8,9,10]
new_values = [value * 2 for value in values]
Ansonsten bitte ein paar Infos zum Hintergrund: Was ist in den Listen gespeichert (Zahlen, Text, ...)? Reden wir von sehr großen Listen? Dann wären möglicherweise Numpy-Arrays eine bessere Lösung.
Re: List-Comprehensin
Verfasst: Samstag 25. Juni 2016, 14:20
von Septias
Ne, so meine ich das nicht. Meistens bruche ich ne Abgewandelte For einer Variabel in einer neuen.
Ich habe nämich einen Code in dem ich unter einer Position
einen Text anbringen möchte.
Also
. Dafür muss ich aber dann den zweiten Wert alleine änder. Geht das gleich in der Wertzuweisung ?
Re: List-Comprehensin
Verfasst: Samstag 25. Juni 2016, 14:52
von snafu
Tut mir leid, aber zumindest ich werde nicht ganz schlau aus deinen Beschreibungen. Versuche doch nochmal, dein Ziel in verständlicher Form zu beschreiben. Ansonsten musst du hoffen, dass jemand anders dich versteht.
Re: List-Comprehensin
Verfasst: Samstag 25. Juni 2016, 15:27
von __deets__
Wenn ich das richtig verstehe willst du eine abgewandelte Kopie Liste, wo sich nur an ausgewaehlten Stellen etwas veraendert hat.
Das geht nicht mit einer kompakten, eingebauten Syntax. Aber man kann sich natuerlich eine Hilfsfunktion schreiben, und das zB so machen:
Code: Alles auswählen
def copy_and_change(original, *replacements):
replacements = dict(replacements)
return [replacements.get(i, v) for i, v in enumerate(original)]
a = [1, 2, "hallo"]
b = copy_and_change(a, (1, "foo"), (2, "bar"))
print(b)
Re: List-Comprehensin
Verfasst: Samstag 25. Juni 2016, 16:20
von Septias
Jap das wars Danke

^^
Re: List-Comprehensin
Verfasst: Samstag 25. Juni 2016, 18:00
von Sirius3
@Septias: eine Liste ist der falsche Datentyp, da eine Liste gleichartige Elemente enthält. Was Du suchst ist ein Tuple, das in Form eines NamedTuples genau die Funktion, die __deets__ Dir da so aufwändig geschrieben hat, schon mitbringt:
Code: Alles auswählen
from collections import namedtuple
Position = namedtuple("Position", "x,y,text")
p = Position(100, 200, "Hallo")
q = p._replace(y=100)
Re: List-Comprehensin
Verfasst: Samstag 25. Juni 2016, 18:56
von Septias
Noch besser ;D Danke
