Jak usunąć duplikaty z listy w Python
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 omówimy 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()
. Specjalnością metody set() jest to, że zwraca ona różne 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 set()
wbudowana funkcja. Later ostateczna lista jest wyświetlana za pomocą list()
wbudowaną funkcję, jak pokazano w przykładzie poniżej.
Wynik, który otrzymujemy, to odrębne elementy, w których wszystkie duplikaty są eliminowane.
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 danego list
, możesz skorzystać z pustej listy tymczasowej. W tym celu najpierw będziesz musiał przejrzeć listę zawierającą duplikaty i dodać unikalne 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
Duplikaty z podanej listy możemy usunąć poprzez import OrderedDict
ze zbiorów. Jest dostępny od Pythona 2.7 i nowszych wersji. OrderedDict zwraca Ci poszczególne elementy w kolejności, w jakiej występuje klucz.
Skorzystajmy z listy i użyjmy fromkeys()
metoda dostępna w OrderedDict, aby pobrać unikalne elementy z listy.
Zrobić użytek z OrderedDict.fromkey()
metodę, musisz zaimportować OrderedDict z kolekcji, jak pokazano poniżej:
from collections import OrderedDict
Oto przykład usuwania duplikatów za pomocą OrderedDict.fromkeys()
Metoda.
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']
Cena Od Python W wersji 3.5+ i nowszej możemy korzystać ze zwykłych dict.fromkeys()
aby uzyskać różne elementy z listy. The dict.fromkeys()
metody zwracają klucze, które są unikalne i pomagają pozbyć się zduplikowanych wartości.
Przykład pokazujący działanie dict.fromkeys()
na liście do nadania unikalnych przedmiotów jest następująca:
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ę, aby była pusta, tj myFinallist = []
.W 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()
Metoda.
Zatem za każdym razem, gdy napotkany zostanie zduplikowany element, będzie on już obecny w tablicy myFinallist i nie zostanie wstawiony. Sprawdźmy teraz 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 Numpy Unique().
Sposób unique()
z modułu Numpy może nam pomóc usunąć duplikat z podanej listy.
Aby pracować z modułem Numpy, najpierw zaimportuj moduł numpy, wykonaj następujące kroki:
Krok 1) Zaimportuj moduł Numpy
import numpy as np
Krok 2) Użyj swojej listy z duplikatami w unikalnej metodzie, jak pokazano poniżej. Dane wyjściowe są konwertowane z powrotem do formatu listy za pomocą tolist()
Metoda.
myFinalList = np.unique(my_list).tolist()
Krok 3) Na koniec wydrukuj listę, jak pokazano poniżej:
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ł Pandy ma unique()
metoda, która da nam unikalne elementy z podanej listy.
Aby pracować z modułem Pandy, należy wykonać następujące kroki:
Krok 1) Importuj moduł Pandy
import pandas as pd
Krok 2) Użyj swojej listy z duplikatami w środku unique()
metoda pokazana poniżej:
myFinalList = pd.unique(my_list).tolist()
Krok 3) Wydrukuj listę jak pokazano poniżej:
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 połączenie rozumienia listy i wyliczenia w celu usunięcia zduplikowanych elementów. 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 wartość to pozycja listy. W
Każdy element jest sprawdzany czy istnieje na liście i jeśli tak jest usuwany 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]
Podsumowanie
- Aby usunąć duplikaty z listy, możesz skorzystać z wbudowanej funkcji
set()
. Specjalnośćset()
metoda polega na tym, że zwraca różne elementy. - Możesz usunąć duplikaty z podanej listy poprzez import
OrderedDictfrom
zbiory. Jest dostępny od Pythona 2.7 i nowszych wersji.OrderedDictdict
dba o zwrócenie Ci odrębnych elementów w kolejności, w jakiej występuje klucz. - Możesz skorzystać z pętli for, dzięki której będziemy przeglądać listę elementów w celu usunięcia duplikatów.
- Sposób
unique()
z modułu Numpy może nam pomóc usunąć duplikat z podanej listy. - Moduł Pandy ma
unique()
metoda, która da nam unikalne elementy z podanej listy. - Kombinacja rozumienia listy i wyliczania służy do usuwania zduplikowanych elementów z listy. Enumerate zwraca obiekt z licznikiem dla każdego elementu na liście.