2012-08-30 8 views

Antwort

42

Sie einen Satz verwenden:

b_set = set(map(tuple,a)) #need to convert the inner lists to tuples so they are hashable 
b = map(list,b_set) #Now convert tuples back into lists (maybe unnecessary?) 

Oder, wenn Sie Listenkomprehensionen/Generatoren bevorzugen:

b_set = set(tuple(x) for x in a) 
b = [ list(x) for x in b_set ] 

Wenn schließlich wichtig ist, können Sie immer sortieren b:

b.sort(key = lambda x: a.index(x)) 
+0

Wenn Sie möchten, dass etwas einzigartig ist, ist ein Set der richtige Weg. :) – mgilson

+0

Thnak Sie, das ist exectly was ich will. – user1507156

8

Siehe mgilson's Antwort, wenn die Reihenfolge der Listen nicht wichtig ist. Wenn Sie den Auftrag behalten möchten, tun Sie etwas wie:

b = list() 
for sublist in a: 
    if sublist not in b: 
     b.append(sublist) 

Dies wird die Reihenfolge in der ursprünglichen Liste beibehalten. Es ist jedoch langsamer und ausführlicher als die Verwendung von Sätzen.

+0

Vielen Dank auch, Ihre Methode ist interessant, aber ich muss die Reihenfolge nicht einhalten. – user1507156

Verwandte Themen