Jak usunąć duplikaty z listy w Python
⚡ Inteligentne podsumowanie
Usuwanie duplikatów z Python Listę można utworzyć za pomocą kilku wbudowanych podejść, w tym set(), dict.fromkeys(), pętli, wyrażeń listowych i metod bibliotecznych z NumPy i Pandas, z których każde równoważy zachowanie kolejności z szybkością.

Python usuń duplikaty z listy
Lista to kontener zawierający różne elementy Python obiekty, którymi mogą być liczby całkowite, słowa, wartości itp. Jest to odpowiednik tablicy w innych językach programowania.
Tutaj przejdziemy przez różne sposoby usuwania duplikatów z danej listy w Python.
Metoda 1) Usuń duplikaty z listy za pomocą Set
Aby usunąć duplikaty z listy, możesz skorzystać z wbudowanej funkcji set(). Cechą charakterystyczną metody set() jest to, że zwraca ona odrębne elementy.
Mamy listę: [1,1,2,3,2,2,4,5,6,2,1]. Lista zawiera wiele duplikatów, które musimy usunąć i odzyskać tylko odrębne elementy. Lista jest przekazywana do wbudowanej funkcji set(). Later lista końcowa wyświetlana jest za pomocą wbudowanej funkcji list().
Wynikiem są odrębne elementy, w których wyeliminowano wszystkie powtarzające się elementy.
Przykład
my_list = [1,1,2,3,2,2,4,5,6,2,1]
my_final_list = set(my_list)
print(list(my_final_list))
Wyjście:
[1, 2, 3, 4, 5, 6]
Metoda 2) Korzystanie z listy tymczasowej
Aby usunąć duplikaty z danej listy, możesz skorzystać z pustej listy tymczasowej. W tym celu najpierw musisz przejść przez listę zawierającą duplikaty i dodać unikatowe elementy do listy tymczasowej. Later lista tymczasowa jest przypisana do listy głównej.
Przykład
Oto działający przykład użycia listy tymczasowej.
my_list = [1, 2, 3, 1, 2, 4, 5, 4 ,6, 2] print("List Before ", my_list) temp_list = [] for i in my_list: if i not in temp_list: temp_list.append(i) my_list = temp_list print("List After removing duplicates ", my_list)
Wyjście:
List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2] List After removing duplicates [1, 2, 3, 4, 5, 6]
Metoda 3) Korzystanie z Dict
Możemy usunąć duplikaty z podanej listy, importując OrderedDict z kolekcji. Jest on dostępny od wersji Python 2.7. OrderedDict zwraca unikatowe elementy w kolejności, w jakiej występuje klucz.
Skorzystajmy z listy i zastosujmy metodę fromkeys() dostępną w OrderedDict, aby pobrać unikalne elementy z listy.
Aby skorzystać z metody OrderedDict.fromkeys(), należy zaimportować OrderedDict z kolekcji, jak pokazano poniżej:
from collections import OrderedDict
Oto przykład usuwania duplikatów za pomocą metody OrderedDict.fromkeys().
Przykład
from collections import OrderedDict my_list = ['a','x','a','y','a','b','b','c'] my_final_list = OrderedDict.fromkeys(my_list) print(list(my_final_list))
Wyjście:
['a', 'x', 'y', 'b', 'c']
Od Python Od wersji 3.5 i nowszych możemy skorzystać ze standardowej metody dict.fromkeys(), aby uzyskać unikalne elementy z listy. Metoda dict.fromkeys() zwraca unikalne klucze i pomaga pozbyć się duplikatów wartości.
Przykład pokazujący działanie funkcji dict.fromkeys() na liście w celu uzyskania unikalnych elementów jest następujący:
Przykład
my_list = ['a','x','a','y','a','b','b','c'] my_final_list = dict.fromkeys(my_list) print(list(my_final_list))
Wyjście:
['a', 'x', 'y', 'b', 'c']
Metoda 4) Użycie pętli for
Korzystanie z dla pętli, przeszukamy listę elementów, aby usunąć duplikaty.
Najpierw zainicjuj tablicę do postaci pustej, np. myFinallist = []. Wewnątrz pętli for dodaj sprawdzenie, czy elementy listy istnieją w tablicy myFinallist. Jeśli elementy nie istnieją, dodaj je do tablicy myFinallist za pomocą metody append().
Zatem za każdym razem, gdy napotkamy duplikat, będzie on już obecny w tablicy myFinallist i nie zostanie wstawiony. Sprawdźmy to samo w poniższym przykładzie:
Przykład
my_list = [1,2,2,3,1,4,5,1,2,6] myFinallist = [] for i in my_list: if i not in myFinallist: myFinallist.append(i) print(list(myFinallist))
Wyjście:
[1, 2, 3, 4, 5, 6]
Metoda 5) Korzystanie ze rozumienia list
Rozwiązania listowe są Python funkcje służące do tworzenia nowych ciągów (takich jak listy, słowniki itp.) z wykorzystaniem już utworzonych sekwencji. Pomaga to zredukować dłuższe pętle i ułatwia czytanie i konserwację kodu.
Użyjmy rozumienia list, aby usunąć duplikaty z podanej listy.
Przykład
my_list = [1,2,2,3,1,4,5,1,2,6] my_finallist = [] [my_finallist.append(n) for n in my_list if n not in my_finallist] print(my_finallist)
Wyjście:
[1, 2, 3, 4, 5, 6]
Metoda 6) Użycie metody unique() biblioteki NumPy
Metoda unique() z modułu NumPy może nam pomóc usunąć duplikaty z podanej listy.
Aby pracować z NumPy, najpierw zaimportuj moduł numpy:
Krok 1) Importuj moduł NumPy
import numpy as np
Krok 2) Użyj listy z duplikatami w metodzie unique(). Dane wyjściowe są konwertowane z powrotem na listę za pomocą metody tolist().
myFinalList = np.unique(my_list).tolist()
Krok 3) Na koniec wydrukuj listę:
print(myFinalList)
Ostateczny kod z danymi wyjściowymi wygląda następująco:
import numpy as np my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = np.unique(my_list).tolist() print(myFinalList)
Wyjście:
[1, 2, 3, 4, 5, 6]
Metoda 7) Korzystanie z metod Pand
Moduł Pandas posiada metodę Unique(), która poda nam unikalne elementy z podanej listy.
Aby pracować z modułem Pandas:
Krok 1) Importuj moduł Pandy
import pandas as pd
Krok 2) Użyj listy z duplikatami wewnątrz metody unique():
myFinalList = pd.unique(my_list).tolist()
Krok 3) Wydrukuj listę:
print(myFinalList)
Ostateczny kod z danymi wyjściowymi wygląda następująco:
import pandas as pd my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = pd.unique(my_list).tolist() print(myFinalList)
Wyjście:
[1, 2, 3, 4, 5, 6]
Metoda 8) Używanie funkcji enumerate() i rozumienia list
Tutaj używamy połączenia funkcji list comprehension i enumerate(), aby usunąć zduplikowane elementy. Funkcja enumerate zwraca obiekt z licznikiem dla każdego elementu na liście. Na przykład (0,1), (1,2) itd. Tutaj pierwsza wartość to indeks, a druga to element listy.
Sprawdzane jest, czy każdy element znajduje się na liście. Jeśli tak, zostaje usunięty z listy.
Przykład
my_list = [1,2,2,3,1,4,5,1,2,6] my_finallist = [i for j, i in enumerate(my_list) if i not in my_list[:j]] print(list(my_finallist))
Wyjście:
[1, 2, 3, 4, 5, 6]
