Seite 1 von 1
list comprehension möglich?
Verfasst: Donnerstag 24. Januar 2008, 07:46
von kiiu
hallo,
habe mich soeben gefragt ob folgende for-schleife auch als list comprehension möglich wäre
Code: Alles auswählen
newList = []
for element in oldList:
if element not in newList:
newList.append(element)
Re: list comprehension möglich?
Verfasst: Donnerstag 24. Januar 2008, 08:55
von gerold
Hallo kiiu!
Ich glaube nicht, da die neue Liste beim Testen ja noch nicht existiert. Aber dein Problem würde ich persönlich anders angehen:
Code: Alles auswählen
>>> old_list = ["a", "b", "a", "c", "a"]
>>> new_list = list(set(old_list))
>>> new_list
['a', 'c', 'b']
>>>
mfg
Gerold
PS: Das hätte ich fast vergessen: Ein "Set" behält die Reihenfolge der Einträge NICHT. Also wenn dir die Reihenfolge wichtig ist, dann darfst du natürlich nicht mit ``set()`` arbeiten.
Verfasst: Donnerstag 24. Januar 2008, 08:56
von mkesper
Ich stelle mir eine andere Frage: Willst du vielleicht eher ein
Set haben als eine Liste?
Re: list comprehension möglich?
Verfasst: Donnerstag 24. Januar 2008, 08:57
von keppla
kiiu hat geschrieben:hallo,
habe mich soeben gefragt ob folgende for-schleife auch als list comprehension möglich wäre
Code: Alles auswählen
newList = []
for element in oldList:
if element not in newList:
newList.append(element)
Wenn ich das richtig verstehe, machst du dir damit eine Liste, die keine doppelten Einträge hat. Sofern dich die Reihenfolge nicht interessiert:
Verfasst: Donnerstag 24. Januar 2008, 09:55
von kiiu
Cool, danke für Eure Antworten!
Das werde ich noch gebrauchen können.
@mkallas
Ich habe mir generell die Frage gestellt, weil ich die beschriebene Schleife in einem Skript gesehen hatte.
Aber wie angedeutet: diese mir bisher unbekannten set-types werde ich in Zukunft mit Sicherheit benutzen.
In sofern nochmals danke! :>
Verfasst: Donnerstag 24. Januar 2008, 10:07
von mkesper
haben doch glatt drei Leute fast gleichzeitig geantwortet!