Cum să eliminați duplicatele dintr-o listă în Python
⚡ Rezumat inteligent
Eliminarea duplicatelor dintr-un Python O listă poate fi realizată cu mai multe abordări predefinite, inclusiv set(), dict.fromkeys(), bucle, înțelegeri de liste și metode de bibliotecă din NumPy și Pandas, fiecare echilibrând păstrarea ordinii cu viteza.

Python eliminați duplicatele dintr-o listă
O listă este un container care conține diferite Python obiecte, care ar putea fi numere întregi, cuvinte, valori etc. Este echivalentul unui tablou în alte limbaje de programare.
Așadar, aici vom trece în revistă diferite modalități prin care putem elimina duplicatele dintr-o anumită listă. Python.
Metoda 1) Eliminați duplicatele din listă folosind Set
Pentru a elimina duplicatele dintr-o listă, puteți utiliza funcția set() încorporată. Particularitatea metodei set() este că returnează elemente distincte.
Avem o listă: [1,1,2,3,2,2,4,5,6,2,1]. Lista conține multe duplicate pe care trebuie să le eliminăm și să recuperăm doar elementele distincte. Lista este dată funcției încorporate set(). Later Lista finală este afișată folosind funcția încorporată list().
Rezultatul pe care îl obținem este reprezentat de elemente distincte în care toate elementele duplicate sunt eliminate.
Exemplu
my_list = [1,1,2,3,2,2,4,5,6,2,1]
my_final_list = set(my_list)
print(list(my_final_list))
ieșire:
[1, 2, 3, 4, 5, 6]
Metoda 2) Utilizarea listei temporare
Pentru a elimina duplicatele dintr-o anumită listă, puteți utiliza o listă temporară goală. Pentru aceasta, mai întâi, va trebui să parcurgeți lista care conține duplicate și să adăugați elementele unice în lista temporară. Later lista temporară este atribuită listei principale.
Exemplu
Iată un exemplu funcțional folosind o listă temporară.
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)
ieșire:
List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2] List After removing duplicates [1, 2, 3, 4, 5, 6]
Metoda 3) Utilizarea Dict
Putem elimina duplicatele din lista dată importând OrderedDict din colecții. Este disponibil de la Python 2.7 încoace. OrderedDict se ocupă de returnarea elementelor distincte în ordinea în care este prezentă cheia.
Să folosim o listă și să folosim metoda fromkeys() disponibilă în OrderedDict pentru a obține elementele unice din listă.
Pentru a utiliza metoda OrderedDict.fromkeys(), trebuie să importați OrderedDict din colecții, așa cum se arată mai jos:
from collections import OrderedDict
Iată un exemplu de eliminare a duplicatelor folosind metoda OrderedDict.fromkeys().
Exemplu
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))
ieșire:
['a', 'x', 'y', 'b', 'c']
De la Python Începând cu versiunea 3.5+, putem folosi metoda obișnuită dict.fromkeys() pentru a obține elementele distincte din listă. Metoda dict.fromkeys() returnează chei unice și ajută la eliminarea valorilor duplicate.
Un exemplu care arată funcționarea funcției dict.fromkeys() pe o listă pentru a oferi elemente unice este următorul:
Exemplu
my_list = ['a','x','a','y','a','b','b','c'] my_final_list = dict.fromkeys(my_list) print(list(my_final_list))
ieșire:
['a', 'x', 'y', 'b', 'c']
Metoda 4) Utilizarea for-loop
Utilizarea pentru buclă, vom parcurge lista de articole pentru a elimina duplicatele.
Mai întâi inițializați tabloul să fie gol, adică myFinallist = []. În interiorul buclei for, adăugați o verificare dacă elementele din listă există în tabloul myFinallist. Dacă elementele nu există, adăugați elementul în tabloul myFinallist folosind metoda append().
Așadar, ori de câte ori se întâlnește elementul duplicat, acesta va fi deja prezent în matricea myFinallist și nu va fi inserat. Să verificăm acum același lucru în exemplul de mai jos:
Exemplu
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))
ieșire:
[1, 2, 3, 4, 5, 6]
Metoda 5) Utilizarea înțelegerii listelor
Listele de înțelegere sunt Python funcții care sunt utilizate pentru crearea de secvențe noi (cum ar fi liste, dicționare etc.) folosind secvențe care au fost deja create. Acest lucru vă ajută să reduceți buclele mai lungi și să faceți codul mai ușor de citit și întreținut.
Să folosim înțelegerea listei pentru a elimina duplicatele din lista dată.
Exemplu
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)
ieșire:
[1, 2, 3, 4, 5, 6]
Metoda 6) Utilizarea metodei NumPy unique()
Metoda unique() din modulul NumPy ne poate ajuta să eliminăm duplicatele din lista dată.
Pentru a lucra cu NumPy, importați mai întâi modulul numpy:
Pas 1) Importați modulul NumPy
import numpy as np
Pas 2) Folosește lista cu duplicate în cadrul metodei unique(). Rezultatul este convertit înapoi într-o listă folosind metoda tolist().
myFinalList = np.unique(my_list).tolist()
Pas 3) În final, imprimați lista:
print(myFinalList)
Codul final cu ieșire este după cum urmează:
import numpy as np my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = np.unique(my_list).tolist() print(myFinalList)
ieșire:
[1, 2, 3, 4, 5, 6]
Metoda 7) Utilizarea metodelor Pandas
Modulul Pandas are o metodă unique() care ne va oferi elementele unice din lista dată.
Pentru a lucra cu modulul Pandas:
Pas 1) Import Pandas modul
import pandas as pd
Pas 2) Folosește lista ta cu duplicate în cadrul metodei unique():
myFinalList = pd.unique(my_list).tolist()
Pas 3) Printează lista:
print(myFinalList)
Codul final cu ieșire este după cum urmează:
import pandas as pd my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = pd.unique(my_list).tolist() print(myFinalList)
ieșire:
[1, 2, 3, 4, 5, 6]
Metoda 8) Folosind enumerate() și înțelegerea listei
Aici folosim combinația dintre funcția „list comprehension” și „enumerate()” pentru a elimina elementele duplicate. Funcția „Enumerate” returnează un obiect cu un contor pentru fiecare element din listă. De exemplu, (0,1), (1,2) etc. Aici, prima valoare este indexul, iar a doua valoare este elementul din listă.
Fiecare element este verificat pentru a vedea dacă există în listă, iar dacă există, este eliminat din listă.
Exemplu
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))
ieșire:
[1, 2, 3, 4, 5, 6]
