Seite 1 von 1
Element in Liste ersetzen...
Verfasst: Donnerstag 21. Oktober 2010, 10:10
von mutetella
Hallo,
ich möchte aus
[-1, 15, 28]
eine Liste
[31, 15, 28]
erstellen, wobei -1 nicht zwingend vorne liegt.
schaut mir irgendwie ganz schön verkrampft aus... Gibt's was schöneres oder passt das so?
Re: Element in Liste ersetzen...
Verfasst: Donnerstag 21. Oktober 2010, 11:09
von EyDu
Hallo.
Code: Alles auswählen
>>> [x-1 if x%2 else x for x in range(10)]
[0, 0, 2, 2, 4, 4, 6, 6, 8, 8]
Zumindest, wenn du alle Vorkommnisse anpassen möchtest.
Sebastian
Re: Element in Liste ersetzen...
Verfasst: Donnerstag 21. Oktober 2010, 11:22
von mutetella
Sorry, da steig' ich jetzt nicht durch...
Wenn Du mit Deinem Beispiel auf LC hinweisen möchtest, dann könnte ich mir in meinem Fall nur folgendes vorstellen:
Und ans Ergebnis noch append(31).
Oder steh' ich auf'm Schlauch?
EDIT: -1 kommt in der Liste nur 1 x vor...
Re: Element in Liste ersetzen...
Verfasst: Donnerstag 21. Oktober 2010, 11:25
von DrFaust
Ich vermute mal, dass du 'list' vorher an deine Liste gebunden hast. Das ist etwas unglücklich, weil da normaler Weise der Python Listen-Datentyp dran gebunden ist. Ich verwende dafür jetzt mal mylist
Ich glaube EyDu und ich haben, das was du tun wolltest unterschiedlich verstanden. Ich hätte das so gemacht:
Wie auch immer. Wenn du nur das erste einer ganzen Reihe von Vorkommen von -1 ersetzen willst oder es nur genau ein Vorkommen geben kann, ist deine Lösung IMHO gut so. Ansonsten ist list comprehension, wie von EyDu vorgeschlagen wahrscheinlich der beste Weg.
Vorsicht: Wenn deine Liste gar keine -1 enthält, führt dein Ansatz zu einem ValueError
Re: Element in Liste ersetzen...
Verfasst: Donnerstag 21. Oktober 2010, 11:29
von EyDu
@DrFaus: Wie haben das Problem schon gleich verstanden. Ich bin nur davon ausgegangen, dass man von meinem Beispiel leicht auf die gewünschte Lösung kommt.
Re: Element in Liste ersetzen...
Verfasst: Donnerstag 21. Oktober 2010, 11:38
von mutetella
@DrFaust:
Vielen Dank, Deine Lösung ist genau, was ich brauche.
EyDu hat geschrieben:..., dass man von meinem Beispiel leicht auf die gewünschte Lösung kommt.

Da fehlt mir noch eine gehörige Portion...