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.

Codzienny biuletyn Guru99

Rozpocznij dzień od najnowszych i najważniejszych wiadomości na temat sztucznej inteligencji, dostarczanych już teraz.