Redundante Liste

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
polypus
User
Beiträge: 37
Registriert: Dienstag 27. September 2005, 14:11
Wohnort: Salzburg

Eigentlich eine lächerliche Frage, aber ich komm nicht weiter und meine Internetsuche/Buchrecherche bringt auch nichts (vielleicht mangels richtiger Bezeichnung für das Problem).
O.K.: Ich habe eine Liste die so ca. 500 strings enthält. Allerdings sind viele der Strings mehrfach enthalten und ich möchte diese Redundanz wegbringen. Gibt es da irgendeine Anweisung wie ich das machen kann?? So, dass jeder Sting nur 1mal vorkommt.
Es ist ja fast schon peinlich, aber ich krieg da nichts weiter.

Big thx
Stefan :oops:
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Code: Alles auswählen

mylist = ["hallo","hallo","weg da"]
mylist = list(set(mylist))
print mylist
Siehe auch: [wiki]Doppelte Einträge löschen[/wiki].

--- Heiko.
polypus
User
Beiträge: 37
Registriert: Dienstag 27. September 2005, 14:11
Wohnort: Salzburg

Danke, aber:

>>>mylist = list(set(mylist))
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'set' is not defined

???
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Lies entweder den Wiki-Artikel (da steht dass meine Lösung 2.4 only ist, und auch noch andere Lösungen), oder probier:

Code: Alles auswählen

import sets
mylist = list(sets.Set(mylist))
Das funktioniert ab 2.3. Alles was davor kommt mußt Du eine der Möglichkeiten nehmen die im entsprechenden Wiki-Artikel beschrieben sind.

--- Heiko.
polypus
User
Beiträge: 37
Registriert: Dienstag 27. September 2005, 14:11
Wohnort: Salzburg

Danke klappt mit dem import! :D
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

die allroundlösung die immer geht, wäre:

Code: Alles auswählen

mymap = {}
for item in mylist:
    mymap[item] = None

newlist = mymap.keys()
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

"Die immer geht" ist ein bisschen mit Vorsicht zu geniessen. Sie geht nur solange die Einträge die Du in das Dict schreibst hashbar sind (selbes gilt natürlich für set, das intern im Prinzip ein dict ist).

Für andere Lösungen die auch in allgemeineren Fällen funktionieren siehe den Wiki-Artikel.

--- Heiko.
Antworten