Python elimină duplicatele dintr-o listă

Cuprins:

Anonim

O listă este un container care conține diferite obiecte Python, 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 acest tutorial, veți învăța:

  • Eliminați duplicatele din listă folosind Set
  • Eliminați duplicatele dintr-o listă utilizând Lista temporară.
  • Eliminați duplicatele din listă folosind Dict
  • Eliminați duplicatele dintr-o listă folosind for-loop
  • Eliminați duplicatele din listă utilizând înțelegerea listei
  • Eliminați duplicatele din listă folosind metoda Numpy unique ().
  • Eliminați duplicatele din listă folosind metodele Pandas
  • Eliminați duplicatele folosind enumerate () și înțelegerea listei

Eliminați duplicatele din listă folosind Set

Pentru a elimina duplicatele dintr-o listă, puteți utiliza setul de funcții încorporat (). 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ă le recuperăm doar elementele distincte. Lista este dată funcției încorporate set (). Mai târziu, lista finală este afișată folosind funcția încorporată list (), așa cum se arată în exemplul de mai jos.

Rezultatul pe care îl obținem este elemente distincte în care sunt eliminate toate elementele duplicate.

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]

Eliminați duplicatele dintr-o listă utilizând Lista temporară

Pentru a elimina duplicatele dintr-o listă dată, puteți utiliza o listă temporară goală. Pentru prima dată, va trebui să parcurgeți lista cu duplicate și să adăugați elementele unice la lista temporară. Ulterior lista temporară este alocată listei principale.

Iată un exemplu de lucru folosind lista 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_listprint("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]

Eliminați duplicatele din listă folosind Dict

Putem elimina duplicatele din lista dată importând OrderedDict din colecții. Este disponibil începând cu python2.7. OrderedDict are grijă să vă returneze elementele distincte într-o ordine în care cheia este prezentă.

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.fromkey (), trebuie să importați OrderedDict din colecții, după cum se arată mai jos:

from collections import OrderedDict

Iată un exemplu de eliminare a duplicatelor folosind metoda OrderedDict.fromkeys ().

from collections import OrderedDictmy_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+ înainte, putem folosi dict.fromkeys () obișnuit pentru a obține elementele distincte din listă. Metodele dict.fromkeys () returnează chei care sunt unice și ajută la scăderea valorilor duplicate.

Un exemplu care arată funcționarea dict.fromkeys () pe o listă pentru a da elementele unice este după cum urmează:

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']

Eliminați duplicatele dintr-o listă folosind for-loop

Folosind for-loop, vom parcurge lista articolelor pentru a elimina duplicatele.

Mai întâi inițializați matricea pentru a goli, adică myFinallist = []. În interiorul buclei for, adăugați verificați dacă elementele din listă există în matricea myFinallist. Dacă elementele nu există, adăugați elementul la matricea myFinallist folosind append () metodă.

Deci, 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:

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]

Eliminați duplicatele din listă utilizând înțelegerea listei

Înțelegerile listelor sunt funcții Python 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ă vă ușurați citirea și întreținerea codului.

Să ne folosim de înțelegerea listei pentru a elimina duplicatele din lista dată.

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]

Eliminați duplicatele din listă 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 module, trebuie să urmați acești pași:

Pasul 1 ) Importați modulul Numpy

import numpy as np

Pasul 2) Utilizați lista cu duplicate în cadrul metodei unice, așa cum se arată mai jos. Ieșirea este convertită înapoi într-un format de listă utilizând metoda tolist ().

myFinalList = np.unique(my_list).tolist()

Pasul 3) Imprimați în final lista așa cum se arată mai jos:

print(myFinalList)

Codul final cu ieșire este după cum urmează:

import numpy as npmy_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]

Eliminați duplicatele din listă folosind metodele Pandas

Modulul Pandas are o metodă unică () care ne va oferi elementele unice din lista dată.

Pentru a lucra cu modulul Pandas, trebuie să urmați acești pași:

Pasul 1) Importați modulul Pandas

import pandas as pd

Pasul 2) Utilizați lista cu duplicate în cadrul metodei unique () așa cum se arată mai jos:

myFinalList = pd.unique(my_list).tolist()

Pasul 3) Imprimați lista așa cum se arată mai jos:

print(myFinalList)

Codul final cu ieșire este după cum urmează:

import pandas as pdmy_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]

Eliminați duplicatele 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 contor la fiecare element din listă. De exemplu (0,1), (1,2) etc. Aici prima valoare este indexul, iar a doua valoare este elementul listei. W

Fiecare element este verificat dacă există în listă și, dacă există, este eliminat din listă.

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 setul de funcții încorporat (). Specialitatea metodei set () este că returnează elemente distincte.
  • Puteți elimina duplicatele din lista dată importând OrderedDict din colecții. Este disponibil începând cu python2.7. OrderedDictdict are grijă să vă returneze elementele distincte într-o ordine în care cheia este prezentă.
  • Puteți utiliza o buclă pentru care vom parcurge lista articolelor pentru a elimina duplicatele.
  • Metoda unique () din modulul Numpy ne poate ajuta să eliminăm duplicatele din lista dată.
  • Modulul Pandas are o metodă unică () care ne va oferi elementele unice din lista dată.
  • Combinația dintre înțelegerea listei și enumerarea este utilizată pentru a elimina elementele duplicate din listă. Enumerate returnează un obiect cu un contor la fiecare element din listă.