Python uklanja duplikate s popisa

Sadržaj:

Anonim

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

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

U ovom vodiču naučit ćete:

  • Uklonite duplikate s popisa pomoću Postavi
  • Uklonite duplikate s popisa pomoću Privremenog popisa.
  • Uklonite duplikate s popisa pomoću Dicta
  • Uklonite duplikate s popisa pomoću for-loop
  • Uklonite duplikate s popisa pomoću razumijevanja popisa
  • Uklonite duplikate s popisa metodom Numpy unique ().
  • Uklonite duplikate s popisa pomoću metoda Pandas
  • Uklonite duplikate pomoću enumerate () i razumijevanja popisa

Uklonite duplikate s popisa pomoću Postavi

Da biste uklonili duplikate s popisa, možete se koristiti ugrađenim skupom funkcija (). Posebnost metode set () je u tome što vraća različite elemente.

Imamo popis: [1,1,2,3,2,2,4,5,6,2,1]. Popis ima mnogo duplikata koje trebamo ukloniti i vratiti natrag samo različite elemente. Popis se daje ugrađenoj funkciji set (). Kasnije se konačni popis prikazuje pomoću ugrađene funkcije list (), kao što je prikazano u donjem primjeru.

Rezultat koji dobivamo su različiti elementi u kojima se uklanjaju svi duplicirani elementi.

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]

Uklonite duplikate s popisa pomoću Privremenog popisa

Da biste uklonili duplikate s datog popisa, možete koristiti prazni privremeni popis. Kao prvo, morat ćete pregledati popis s duplikatima i dodati jedinstvene stavke na privremeni popis. Kasnije se privremeni popis dodjeljuje glavnom popisu.

Evo radnog primjera pomoću 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_listprint("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]

Uklonite duplikate s popisa pomoću Dicta

Duplikate s navedenog popisa možemo ukloniti uvozom OrderedDict iz zbirki. Dostupan je od python2.7 nadalje. OrderedDict se brine da vam vrati različite elemente redoslijedom kojim je prisutan ključ.

Iskoristimo popis i upotrijebimo metodu fromkeys () dostupnu u OrderedDict za dobivanje jedinstvenih elemenata s popisa.

Da biste koristili metodu OrderedDict.fromkey (), morate uvesti OrderedDict iz zbirki, kao što je prikazano dolje:

from collections import OrderedDict

Evo primjera uklanjanja duplikata metodom 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))

Izlaz:

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

Od Pythona 3.5+ pa nadalje, možemo koristiti uobičajeni dict.fromkeys () da bismo dobili posebne elemente s popisa. Metode dict.fromkeys () vraćaju jedinstvene ključeve i pomažu u uklanjanju dvostrukih vrijednosti.

Primjer koji prikazuje rad dict.fromkeys () na popisu za davanje jedinstvenih predmeta je sljedeći:

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

Uklonite duplikate s popisa pomoću for-loop

Koristeći for-loop, preći ćemo popis stavki da bismo uklonili duplikate.

Prvo inicijalizirajte polje da se isprazni, tj. MyFinallist = []. Unutar for-petlje dodajte provjerite postoje li stavke na popisu u polju myFinallist. Ako stavke ne postoje, dodajte stavku u niz myFinallist pomoću append () metoda.

Dakle, kad god se nađe duplicirana stavka, ona će već biti prisutna u polju myFinallist i neće biti umetnuta. Provjerimo sada isto u primjeru dolje:

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]

Uklonite duplikate s popisa pomoću razumijevanja popisa

Poimanja popisa su Python funkcije koje se koriste za stvaranje novih sekvenci (poput popisa, rječnika itd.) Pomoću već stvorenih sekvenci. To vam pomaže smanjiti duže petlje i olakšati čitanje i održavanje koda.

Iskoristimo razumijevanje popisa za uklanjanje duplikata s datog popisa.

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]

Uklonite duplikate s popisa metodom Numpy unique ().

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

Da biste radili s Numpy first import numpy modulom, morate slijediti ove korake:

Korak 1 ) Uvoz modula Numpy

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 metode tolist ().

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

Uklonite duplikate s popisa pomoću metoda Pandas

Modul Pandas ima jedinstvenu () metodu koja će nam dati jedinstvene elemente s navedenog popisa.

Da biste radili s modulom Pandas, morate slijediti ove korake:

Korak 1) Uvoz modula Pandas

import pandas as pd

Korak 2) Koristite svoj popis s duplikatima u jedinstvenoj () metodi kao što je prikazano dolje:

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

Uklonite duplikate pomoću enumerate () i razumijevanja popisa

Ovdje se kombinira popis poimanja i nabrajanja kako bi se uklonili duplicirani elementi. Enumerate vraća objekt s brojačem svakom elementu na popisu. Na primjer (0,1), (1,2) itd. Ovdje je prva vrijednost indeks, a druga vrijednost stavka popisa. W

Svaki se element provjerava postoji li na popisu, a ako postoji, uklanja se s popisa.

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]

Sažetak

  • Da biste uklonili duplikate s popisa, možete se koristiti ugrađenim skupom funkcija (). Posebnost metode set () je u tome što vraća različite elemente.
  • Duplikate s navedenog popisa možete ukloniti uvozom OrderedDictfrom zbirki. Dostupan je od python2.7 nadalje. OrndedDictdict brine se da vam vrati različite elemente redoslijedom kojim je prisutan ključ.
  • Možete se poslužiti for-petljom kojom ćemo prelaziti popis stavki za uklanjanje duplikata.
  • Metoda unique () iz modula Numpy može nam pomoći ukloniti duplikat s navedenog popisa.
  • Modul Pandas ima jedinstvenu () metodu koja će nam dati jedinstvene elemente s navedenog popisa.
  • Kombinacija razumijevanja i nabrajanja popisa koristi se za uklanjanje dvostrukih elemenata s popisa. Enumerate vraća objekt s brojačem svakom elementu na popisu.