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.
polypus
User
Beiträge: 37
Registriert: Dienstag 27. September 2005, 14:11
Wohnort: Salzburg

Redundante Liste

Beitragvon polypus » Montag 30. Januar 2006, 15:00

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:

Beitragvon modelnine » Montag 30. Januar 2006, 15:02

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

Beitragvon polypus » Montag 30. Januar 2006, 15:05

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:

Beitragvon modelnine » Montag 30. Januar 2006, 15:06

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

Beitragvon polypus » Montag 30. Januar 2006, 15:09

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

Beitragvon Mad-Marty » Montag 30. Januar 2006, 20:19

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:

Beitragvon modelnine » Montag 30. Januar 2006, 20:56

"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.

Wer ist online?

Mitglieder in diesem Forum: /me, brainstir, DB7WN, NewToPython, Yahoo [Bot]