Cum să eliminați duplicatele dintr-o listă în Python
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.
Deci aici vom trece prin diferite moduri în care putem elimina duplicatele dintr-o listă dată în Python.
Metoda 1) Eliminați duplicatele din listă folosind Set
Pentru a elimina duplicatele dintr-o listă, puteți utiliza funcția încorporată set()
. Specialitatea metodei set() este că returnează elemente distincte.
Avem o listă: [1,1,2,3,2,2,4,5,6,2,1]. Lista are multe duplicate pe care trebuie să le eliminăm și să recuperăm doar elementele distincte. Lista este dată la set()
functie incorporata. Later lista finală este afișată folosind list()
funcție încorporată, așa cum se arată în exemplul de mai jos.
Ieșirea pe care o obținem sunt 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-un anumit list
, puteți utiliza o listă temporară goală. Pentru aceasta, mai întâi, va trebui să parcurgeți lista cu duplicate și să adăugați elementele unice la lista temporară. Later lista temporară este atribuită listei principale.
Exemplu
Iată un exemplu de lucru 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ă prin import OrderedDict
din colecții. Este disponibil începând cu python 2.7. OrderedDict are grijă să vă returneze elementele distincte într-o ordine în care cheia este prezentă.
Să folosim o listă și să folosim fromkeys()
metodă disponibilă în OrderedDict pentru a obține elementele unice din listă.
Pentru a folosi OrderedDict.fromkey()
metoda, trebuie să importați OrderedDict din colecții, după cum se arată mai jos:
from collections import OrderedDict
Iată un exemplu pentru a elimina duplicatele folosind OrderedDict.fromkeys()
metodă.
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 3.5+ în sus, putem folosi obișnuit dict.fromkeys()
pentru a obține elementele distincte din listă. The dict.fromkeys()
metodele returnează chei care sunt unice și ajută la eliminarea valorilor duplicate.
Un exemplu care arată funcționarea dict.fromkeys()
pe o listă pentru a oferi elementele unice este după cum urmează:
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 matricea pentru a goli ie myFinallist = []
.În interiorul buclei for, adăugați verifica dacă elementele din listă există în matrice myFinallist
. Dacă elementele nu există, adăugați elementul în matricea myFinallist folosind append()
metodă.
Deci, ori de câte ori este întâlnit 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) Folosind metoda Numpy unique().
Metoda unique()
din modulul Numpy ne poate ajuta să eliminăm duplicatele din lista dată.
Pentru a lucra cu Numpy primul import numpy, trebuie să urmați acești pași:
Etapa 1) Importă modulul Numpy
import numpy as np
Pas 2) Utilizați lista dvs. cu duplicate în cadrul metodei unice, așa cum se arată mai jos. Ieșirea este convertită înapoi într-un format de listă folosind tolist()
metodă.
myFinalList = np.unique(my_list).tolist()
Pas 3) În cele din urmă, tipăriți lista după cum se arată mai jos:
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 un unique()
metodă care ne va oferi elementele unice din lista dată.
Pentru a lucra cu modulul Pandas, trebuie să urmați acești pași:
Pas 1) Import Pandas modul
import pandas as pd
Pas 2) Folosește-ți lista cu duplicate înăuntru unique()
metoda după cum se arată mai jos:
myFinalList = pd.unique(my_list).tolist()
Pas 3) Imprimați lista după cum se arată mai jos:
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 combinația de înțelegere a listei și enumerare pentru a elimina elementele duplicate. Enumerate returnează un obiect cu un numărător 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ă. W
Fiecare element este verificat 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]
Rezumat
- Pentru a elimina duplicatele dintr-o listă, puteți utiliza funcția încorporată
set()
. Specialitateaset()
metoda este că returnează elemente distincte. - Puteți elimina duplicatele din lista dată prin import
OrderedDictfrom
colecții. Este disponibil începând cu python 2.7.OrderedDictdict
are grija sa va returneze elementele distincte intr-o ordine in care cheia este prezenta. - Puteți folosi o buclă for pe care o vom parcurge lista de elemente pentru a elimina duplicatele.
- Metoda
unique()
din modulul Numpy ne poate ajuta să eliminăm duplicatele din lista dată. - Modulul Pandas are un
unique()
metodă care ne va oferi elementele unice din lista dată. - Combinația de înțelegere a listei și enumerare este utilizată pentru a elimina elementele duplicate din listă. Enumerate returnează un obiect cu un numărător pentru fiecare element din listă.