[Python-de] Aus'ner Liste jeden Wert einmal rausfischen....

Gerhard Häring haering_python at gmx.de
Thu Sep 12 00:07:15 EDT 2002


* Thomas Fanslau <tfanslau at gmx.de> [2002-09-11 22:25 +0200]:
> Ich bin heute über folgenden Code-Schnipsel gestolpert, der eine Liste 
> ähnlich wie bei 'uniq' unter *IX eindampft.
> 
> uniqValues = reduce(lambda a,b : a.setdefault(b, a), values, {}).keys()

Hab ich glaube ich auch schon mal verwendet, wenn's die Version aus dem
Cookbook ist.

> Kann man das wirklich so machen? Eigentlich habe ich da ein komisches
> Gefühl dabei, weil ja jeder Node im Dictionary mit dem Dictionary
> selber verknüpft wird. Aber die Performance is richtig gut....

Kann sein, dass ich jetzt auf dem Schlauch stehe, aber was spricht
gegen:

def mkunique(values):
    uniq = {}
    for item in values:
        uniq[item] = 1
    return uniq.keys()

? Die Performance scheint noch ein Stück besser zu sein.

-- Gerhard




More information about the Python-de mailing list