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 odset()
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.