Seite 1 von 1

Vorkommende Listenelemente ausgeben

Verfasst: Donnerstag 26. November 2009, 12:02
von Käptn Haddock
Hoi!

Ich meine das neulich gesehen zu haben und suche mir gerade die Augen wund.
Ich suche eine Funktion, die mir alle in einer Liste vorkommenden Ausprägungen in eine neue Liste schreibt. Also sowas in der Art:

Code: Alles auswählen

[1,2,3,4,5,5,3,4,2,2,2] => [1,2,3,4,5]
Danke für Hinweise

Gruß Uwe

Verfasst: Donnerstag 26. November 2009, 12:08
von Defnull

Code: Alles auswählen

>>> list(set([1,2,3,4,5,5,3,4,2,2,2]))
[1, 2, 3, 4, 5]

Verfasst: Donnerstag 26. November 2009, 12:30
von DasIch
set() behält die Reihenfolge nicht bei.

Code: Alles auswählen

def unique(sequence, preserve_order=False):
    if not preserve_order:
        return iter(set(sequence))
    seen = set()
    for item in sequence:
        if item not in seen:
            yield item
            seen.add(item)

Verfasst: Donnerstag 26. November 2009, 13:45
von Käptn Haddock
Argh. Best viewed with open eyes :)

Die Reihenfolge ist letztlich egal, die Werte sollen nur in eine Datenbanktabelle wandern und müssen dort unique sein.

Vielen Dank für die Hilfe!

Gruß Uwe