Doppelte Einträge in Python Listen entfernen

Zur Zeit programmiere ich gerade einen kleinen Launcher für das Spiel Lure of the Temptress (hierzu später mehr in diesem Blog) in Python. Damit auch unerfahrene Windows Benutzer den Launcher benutzen können ohne vorher Python installieren zu müssen, habe ich das ganze mit py2exe umgewandelt und in eine exe gepackt.

Während des Arbeitens mit py2exe ist mir aufgefallen, dass die übergebenen Parameter (in diesem Fall Dateipfade zu DLL Dateien) manchmal doppelt vorkommen.

Will man diese doppelten Einträge eliminieren gibt es zwei sehr simple Möglichkeiten dazu:

Zwei Listen. Eine mit reinen Zahlen, die andere mit Strings von Farbnamen:

x = [1, 3, 5, 7, 5, 5, 9]
y = ["blau", "gelb", "braun", "blau", "gelb", "violett"]

Möglichkeit 1 (< Ptyhon 2.4):

>>> x_sauber = dict(map(lambda i: (i,1),x)).keys()
>>> y_sauber = dict(map(lambda i: (i,1),y)).keys()

Ergibt:

>>> print x_sauber
[1, 3, 9, 5, 7]
>>> print y_sauber
['violett', 'gelb', 'blau', 'braun']

Möglichkeit 2 (ab Ptyhon 2.4):

>>> x_sauber = list(set(x))
>>> y_sauber = list(set(y))

Ergibt:

>>> print x_sauber
[1, 3, 9, 5, 7]
>>> print y_sauber
['violett', 'gelb', 'blau', 'braun']