Kako ukloniti duplikate s popisa u Python

Python uklonite duplikate s popisa

Popis je spremnik koji sadrži različite Python objekti, koji mogu biti cijeli brojevi, riječi, vrijednosti itd. To je ekvivalent nizu u drugim programskim jezicima.

Dakle, ovdje ćemo proći različite načine na koje možemo ukloniti duplikate s određenog popisa Python.

Metoda 1) Uklonite duplikate s popisa pomoću Seta

Da biste uklonili duplikate s popisa, možete koristiti ugrađenu funkciju set(). Posebnost metode set() je da vraća različite elemente.

Imamo popis: [1,1,2,3,2,2,4,5,6,2,1]. Popis ima mnogo duplikata koje moramo ukloniti i vratiti samo različite elemente. Popis se daje na set() ugrađena funkcija. Later konačna lista se prikazuje pomoću list() ugrađenu funkciju, kao što je prikazano u primjeru u nastavku.


Rezultat koji dobivamo su različiti elementi gdje su svi duplirani elementi eliminirani.
Primjer

my_list = [1,1,2,3,2,2,4,5,6,2,1]
my_final_list = set(my_list)
print(list(my_final_list))

Izlaz:

[1, 2, 3, 4, 5, 6]

Metoda 2) Korištenje privremenog popisa

Za uklanjanje duplikata iz zadanog list, možete koristiti prazan privremeni popis. Za to ćete prvo morati proći kroz popis koji ima duplikate i dodati jedinstvene stavke na privremeni popis. Later privremena lista se dodjeljuje glavnoj listi.

Primjer
Ovdje je radni primjer korištenja privremenog popisa.

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)

Izlaz:

List Before  [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
List After removing duplicates  [1, 2, 3, 4, 5, 6]

Metoda 3) Korištenje Dict

Duplikate možemo ukloniti s danog popisa uvozom OrderedDict iz zbirki. Dostupan je od pythona 2.7 nadalje. OrderedDict se brine za vraćanje različitih elemenata redoslijedom u kojem je ključ prisutan.

Iskoristimo popis i koristimo se fromkeys() metoda dostupna u OrderedDict za dobivanje jedinstvenih elemenata s popisa.

Iskoristiti OrderedDict.fromkey() morate uvesti OrderedDict iz kolekcija, kao što je prikazano u nastavku:

from collections import OrderedDict

Evo primjera za uklanjanje duplikata pomoću OrderedDict.fromkeys() metoda.

Primjer

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))

Izlaz:

['a', 'x', 'y', 'b', 'c']

Od Python 3.5+ nadalje, možemo koristiti redovne dict.fromkeys() da biste dobili različite elemente s popisa. The dict.fromkeys() metode vraćaju ključeve koji su jedinstveni i pomažu da se riješite dupliciranih vrijednosti.

Primjer koji pokazuje rad dict.fromkeys() na popisu za davanje jedinstvenih stavki je kako slijedi:

Primjer

my_list = ['a','x','a','y','a','b','b','c']
my_final_list = dict.fromkeys(my_list)
print(list(my_final_list))

Izlaz:

['a', 'x', 'y', 'b', 'c']

Metoda 4) Korištenje for-petlje

Korištenje for-petlja, proći ćemo popis stavki kako bismo uklonili duplikate.

Prvo inicijalizirajte niz da bude prazan, tj myFinallist = [].Unutar for-petlje dodajte provjeru postoje li stavke s popisa u nizu myFinallist. Ako stavke ne postoje, dodajte stavku u niz myFinallist pomoću append() metoda.

Dakle, kad god se naiđe na dupliciranu stavku, ona će već biti prisutna u nizu myFinallist i neće biti umetnuta. Provjerimo sada isto u primjeru ispod:

Primjer

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))

Izlaz:

[1, 2, 3, 4, 5, 6]

Metoda 5) Korištenje razumijevanja popisa

Popis shvaćanja su Python funkcije koje se koriste za stvaranje novih sekvenci (kao što su popisi, rječnici itd.) koristeći sekvence koje su već stvorene. To vam pomaže smanjiti dulje petlje i učiniti vaš kod lakšim za čitanje i održavanje.

Iskoristimo razumijevanje popisa za uklanjanje duplikata s danog popisa.

Primjer

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)

Izlaz:

[1, 2, 3, 4, 5, 6]

Metoda 6) Korištenje metode Numpy unique().

Metoda unique() iz Numpy modula može nam pomoći ukloniti duplikat s danog popisa.

Za rad s Numpyjevim prvim uvoznim numpy modulom morate slijediti ove korake:

Korak 1) Uvoz Numpy modula

import numpy as np

Korak 2) Koristite svoj popis s duplikatima unutar jedinstvene metode kao što je prikazano u nastavku. Izlaz se pretvara natrag u format popisa pomoću tolist() metoda.

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

Korak 3) Na kraju ispišite popis kao što je prikazano u nastavku:

print(myFinalList)

Konačni kod s izlazom je sljedeći:

import numpy as np
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = np.unique(my_list).tolist()
print(myFinalList)

Izlaz:

[1, 2, 3, 4, 5, 6]

Metoda 7) Korištenje Pandas metoda

Pandas modul ima unique() metoda koja će nam dati jedinstvene elemente s danog popisa.

Za rad s modulom Pandas morate slijediti ove korake:

Korak 1) Uvoz Pandas modula

import pandas as pd

Korak 2) Koristite svoj popis s duplikatima unutra unique() metoda kao što je prikazano u nastavku:

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

Korak 3) Ispišite popis kao što je prikazano u nastavku:

print(myFinalList)

Konačni kod s izlazom je sljedeći:

import pandas as pd

my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = pd.unique(my_list).tolist()
print(myFinalList)

Izlaz:

[1, 2, 3, 4, 5, 6]

Metoda 8) Korištenje enumerate() i razumijevanja popisa

Ovdje je kombinacija razumijevanja popisa i nabrajanja za uklanjanje dupliciranih elemenata. Enumerate vraća objekt s brojačem za svaki element na popisu. Na primjer (0,1), (1,2) itd. Ovdje je prva vrijednost indeks, a druga vrijednost je stavka popisa. W

Svaki element se provjerava da li postoji na listi, a ako postoji, uklanja se s liste.

Primjer

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))

Izlaz:

[1, 2, 3, 4, 5, 6]

rezime

  • Da biste uklonili duplikate s popisa, možete koristiti ugrađenu funkciju set(). Specijalnost od set() metoda je da vraća različite elemente.
  • Možete ukloniti duplikate s danog popisa uvozom OrderedDictfrom zbirke. Dostupan je od pythona 2.7 nadalje. OrderedDictdict brine se o vraćanju različitih elemenata u redoslijedu u kojem je ključ prisutan.
  • Možete koristiti for-petlju kojom ćemo proći kroz popis stavki kako bismo uklonili duplikate.
  • Metoda unique() iz Numpy modula može nam pomoći ukloniti duplikat s danog popisa.
  • Pandas modul ima unique() metoda koja će nam dati jedinstvene elemente s danog popisa.
  • Kombinacija razumijevanja popisa i nabrajanja koristi se za uklanjanje dupliciranih elemenata s popisa. Enumerate vraća objekt s brojačem za svaki element na popisu.