Chcę usunąć wszystkie listy duplikatów z listy.Python: Jak usunąć zduplikowane listy z listy?
Mam więc listę takich list.
a = [[1,2],[1,2],[3,4,5],[3,4,5],[3,4,5]]
chcę mieć:
b = [[1,2],[3,4,5]]
nie wiem jak to zrobić.
Dziękuję
Chcę usunąć wszystkie listy duplikatów z listy.Python: Jak usunąć zduplikowane listy z listy?
Mam więc listę takich list.
a = [[1,2],[1,2],[3,4,5],[3,4,5],[3,4,5]]
chcę mieć:
b = [[1,2],[3,4,5]]
nie wiem jak to zrobić.
Dziękuję
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))
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.
Dziękuję również, twoja metoda jest interesująca, ale nie muszę zachować zamówienia. – user1507156
Jeśli chcesz, aby coś było wyjątkowe, zestaw jest do zrobienia. :) – mgilson
Thnak, to jest dokładnie to, czego chcę. – user1507156