Kako ukloniti duplikate s popisa u Python
⚡ Pametni sažetak
Uklanjanje duplikata iz Python Popis se može napraviti s nekoliko ugrađenih pristupa, uključujući set(), dict.fromkeys(), petlje, razumijevanje popisa i metode biblioteka iz NumPy-a i Pandasa, pri čemu svaki balansira očuvanje redoslijeda s brzinom.

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 kroz različite načine na koje možemo ukloniti duplikate s određenog popisa u Python.
Metoda 1) Uklonite duplikate s popisa pomoću Seta
Za uklanjanje duplikata s popisa možete upotrijebiti ugrađenu funkciju set(). Posebnost metode set() je u tome što vraća različite elemente.
Imamo listu: [1,1,2,3,2,2,4,5,6,2,1]. Lista ima mnogo duplikata koje trebamo ukloniti i vratiti samo različite elemente. Lista je predana ugrađenoj funkciji set(). Later Konačni popis prikazuje se pomoću ugrađene funkcije list().
Izlaz koji dobivamo su različiti elementi gdje su svi duplicirani 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 s određenog popisa možete upotrijebiti prazan privremeni popis. Za to ćete prvo morati proći kroz popis koji sadrži duplikate i dodati jedinstvene stavke na privremeni popis. Later privremena lista se dodjeljuje glavnoj listi.
Primjer
Evo radnog primjera 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 OrderedDicta iz kolekcija. Dostupan je od python2.7 nadalje. OrderedDict se brine o vraćanju različitih elemenata redoslijedom kojim je ključ prisutan.
Koristimo listu i metodu fromkeys() dostupnu u OrderedDictu kako bismo dobili jedinstvene elemente s liste.
Za korištenje metode OrderedDict.fromkeys(), morate uvesti OrderedDict iz kolekcija, kao što je prikazano u nastavku:
from collections import OrderedDict
Evo primjera za uklanjanje duplikata pomoću metode OrderedDict.fromkeys().
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 Od verzije 3.5 nadalje, možemo koristiti redovnu metodu dict.fromkeys() za dobivanje različitih elemenata s popisa. Metoda dict.fromkeys() vraća jedinstvene ključeve i pomaže u uklanjanju dupliciranih vrijednosti.
Primjer koji pokazuje rad funkcije dict.fromkeys() na popisu za dobivanje jedinstvenih stavki je sljedeći:
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 metode append().
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 u nastavku:
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 duplikate s danog popisa.
Za rad s NumPy-jem, prvo uvezite numpy modul:
Korak 1) Uvoz NumPy modula
import numpy as np
Korak 2) Koristite svoju listu s duplikatima unutar metode unique(). Izlaz se pretvara natrag u listu pomoću metode tolist().
myFinalList = np.unique(my_list).tolist()
Korak 3) Na kraju ispišite popis:
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
Modul Pandas ima metodu unique() koja će nam dati jedinstvene elemente s danog popisa.
Za rad s Pandas modulom:
Korak 1) Uvoz Pandas modula
import pandas as pd
Korak 2) Koristite svoju listu s duplikatima unutar metode unique():
myFinalList = pd.unique(my_list).tolist()
Korak 3) Ispis popisa:
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 koristimo kombinaciju popisnog razumijevanja i enumerate() 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 stavka popisa.
Za svaki element se provjerava postoji li na popisu, a ako postoji, uklanja se s popisa.
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]
