Liste uniquify

10/11/2011 - 20:24 von Philipp Kraus | Report spam
Hallo,

ich möchte aus einer Liste Duplikate entfernen. Im Moment mache ich das mit
def unique(seq):
keys = {}
for e in seq:
keys[e] = 1
return keys.keys()

das Problem dabei ist aber, dass mir dadurch die Reihenfolge der
Element veràndert wird.
Ich möchte gerne folgendes haben, wenn die Liste so aussieht [a, a, b,
e, c, g, d, g], soll
das Resultant nach dem entfernen von den Duplikaten so aussehen [a, b,
e, c, g, d]
also immer das erste Auftreten eines Elementes soll erhalten bleiben.

Ist ein
newlist = []
for i in list :
if not i in newlist :
newlist.append(i)

dafür so gedacht, oder kann man das etwas besser machen?

Danke

Phil
 

Lesen sie die antworten

#1 marc
10/11/2011 - 20:44 | Warnen spam
ich möchte aus einer Liste Duplikate entfernen.



list = [1,5,3,5,7,8,6,6]
ulist = sorted(set(list), key=list.index)

Nicht gerade für große Listen geeignet, aber es funktioniert.

Ähnliche fragen