2012-08-30 38 views

Odpowiedz

42

Można użyć zestawu:

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?) 

Lub, jeśli wolisz listowych/generatory:

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

Wreszcie, jeśli kolejność jest istotna, można zawsze sortuj b:

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

Jeśli chcesz, aby coś było wyjątkowe, zestaw jest do zrobienia. :) – mgilson

+0

Thnak, to jest dokładnie to, czego chcę. – user1507156

8

Zobacz odpowiedź mgilsona, jeśli kolejność list nie jest ważna. Jeśli chcesz zachować zamówienie, zrób coś takiego:

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

Spowoduje to zachowanie zamówienia na oryginalnej liście. Jest jednak wolniejszy i bardziej szczegółowy niż używanie zestawów.

+0

Dziękuję również, twoja metoda jest interesująca, ale nie muszę zachować zamówienia. – user1507156