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
OrderedDictfromzbirke. Dostupan je od pythona 2.7 nadalje.OrderedDictdictbrine 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.
