Kuidas eemaldada loendist duplikaadid Python
Python eemaldage loendist duplikaadid
Loend on konteiner, mis sisaldab erinevaid Python objektid, mis vรตivad olla tรคisarvud, sรตnad, vรครคrtused jne. See on massiivi ekvivalent teistes programmeerimiskeeltes.
Nii et siin kรคsitleme erinevaid viise, kuidas saame antud loendist duplikaate eemaldada Python.
1. meetod) Eemaldage loendist duplikaadid, kasutades valikut Mรครคra
Duplikaatide loendist eemaldamiseks saate kasutada sisseehitatud funktsiooni set(). Set() meetodi eripรคra seisneb selles, et see tagastab erinevad elemendid.
Meil on nimekiri: [1,1,2,3,2,2,4,5,6,2,1]. Loendis on palju duplikaate, mille peame eemaldama ja tagasi hankima ainult erinevad elemendid. Nimekiri antakse set() sisseehitatud funktsioon. Later lรตplik loend kuvatakse kasutades list() sisseehitatud funktsioon, nagu on nรคidatud allolevas nรคites.
Saame vรคljundiks erinevad elemendid, kus kรตik duplikaadid elimineeritakse.
Nรคide
my_list = [1,1,2,3,2,2,4,5,6,2,1] my_final_list = set(my_list) print(list(my_final_list))
Vรคljund:
[1, 2, 3, 4, 5, 6]
2. meetod) Ajutise loendi kasutamine
Duplikaatide eemaldamiseks antud list, saate kasutada tรผhja ajutist loendit. Selleks peate kรตigepealt lรคbi vaatama duplikaatide loendi ja lisama unikaalsed รผksused ajutisse loendisse. Later ajutine nimekiri on mรครคratud pรตhiloendile.
Nรคide
Siin on toimiv nรคide ajutise loendi kasutamisest.
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)
Vรคljund:
List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2] List After removing duplicates [1, 2, 3, 4, 5, 6]
3. meetod) Dict
Importimise teel saame antud loendist duplikaate eemaldada OrderedDict kollektsioonidest. See on saadaval alates python 2.7-st. OrderedDict hoolitseb selle eest, et tagastataks teile erinevad elemendid vรตtme olemasolu jรคrjekorras.
Kasutagem nimekirja ja kasutage fromkeys() OrderedDictis saadaolevat meetodit unikaalsete elementide loendist hankimiseks.
Et kasutada OrderedDict.fromkey() meetodil, peate importima OrderedDict kogudest, nagu allpool nรคidatud:
from collections import OrderedDict
Siin on nรคide duplikaatide eemaldamiseks kasutades OrderedDict.fromkeys() meetod.
Nรคide
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))
Vรคljund:
['a', 'x', 'y', 'b', 'c']
alates Python Alates 3.5+ saame kasutada tavalist dict.fromkeys() eristavate elementide loendist hankimiseks. The dict.fromkeys() meetodid tagastavad vรตtmed, mis on kordumatud ja aitavad vabaneda korduvatest vรครคrtustest.
Nรคide, mis nรคitab selle toimimist dict.fromkeys() kordumatute esemete andmise loendis on jรคrgmine:
Nรคide
my_list = ['a','x','a','y','a','b','b','c'] my_final_list = dict.fromkeys(my_list) print(list(my_final_list))
Vรคljund:
['a', 'x', 'y', 'b', 'c']
4. meetod) For-loop kasutamine
Kasutamine for-loop, lรคbime duplikaatide eemaldamiseks รผksuste loendi.
Esmalt lรคhtestage massiiv tรผhjaks, st myFinallist = [].For-loopi sisse lisage kontroll, kas loendis olevad รผksused on massiivis olemas myFinallist. Kui รผksusi pole olemas, lisage รผksus massiivi myFinalist, kasutades nuppu append() meetod.
Nii et iga kord, kui duplikaatรผksust kohtatakse, on see juba massiivis myFinalist olemas ja seda ei lisata. Kontrollime nรผรผd sama allolevas nรคites:
Nรคide
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))
Vรคljund:
[1, 2, 3, 4, 5, 6]
5. meetod) Loendist arusaamise kasutamine
Loendi mรตistmised on Python funktsioonid, mida kasutatakse uute jadade (nt loendid, sรตnastikud jne) loomiseks, kasutades juba loodud jadasid. See aitab teil vรคhendada pikemaid silmuseid ning muuta koodi hรตlpsamini loetavaks ja hooldatavaks.
Kasutame loendi mรตistmist, et eemaldada antud loendist duplikaadid.
Nรคide
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)
Vรคljund:
[1, 2, 3, 4, 5, 6]
6. meetod) Numpy ainulaadse() meetodi kasutamine.
Meetod unique() Numpy moodulist vรตib aidata meil duplikaadi antud loendist eemaldada.
Numpy first import numpy mooduliga tรถรถtamiseks peate jรคrgima neid samme.
Samm 1) Impordi Numpy moodul
import numpy as np
Step 2) Kasutage oma loendit kordumatu meetodi duplikaatidega, nagu allpool nรคidatud. Vรคljund teisendatakse tagasi loendivormingusse kasutades tolist() meetod.
myFinalList = np.unique(my_list).tolist()
Step 3) Lรตpuks printige loend, nagu allpool nรคidatud:
print(myFinalList)
Lรตplik kood koos vรคljundiga on jรคrgmine:
import numpy as np my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = np.unique(my_list).tolist() print(myFinalList)
Vรคljund:
[1, 2, 3, 4, 5, 6]
7. meetod) Panda meetodite kasutamine
Panda moodulil on a unique() meetod, mis annab meile antud loendist ainulaadsed elemendid.
Pandase mooduliga tรถรถtamiseks peate jรคrgima neid samme:
Step 1) Impordi Panda moodul
import pandas as pd
Step 2) Kasutage oma loendit duplikaatidega unique() meetod, nagu allpool nรคidatud:
myFinalList = pd.unique(my_list).tolist()
Step 3) Printige loend, nagu allpool nรคidatud:
print(myFinalList)
Lรตplik kood koos vรคljundiga on jรคrgmine:
import pandas as pd my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = pd.unique(my_list).tolist() print(myFinalList)
Vรคljund:
[1, 2, 3, 4, 5, 6]
8. meetod) enumerate() ja loendi mรตistmise kasutamine
Siin on loendi mรตistmise ja loendamise kombinatsioon dubleerivate elementide eemaldamiseks. Loendamine tagastab loendi iga elemendi loenduriga objekti. Nรคiteks (0,1), (1,2) jne. Siin on esimene vรครคrtus indeks ja teine โโvรครคrtus on loendi element. W
Iga elementi kontrollitakse, kas see on loendis olemas, ja kui see on olemas, eemaldatakse see loendist.
Nรคide
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))
Vรคljund:
[1, 2, 3, 4, 5, 6]
kokkuvรตte
- Duplikaatide loendist eemaldamiseks saate kasutada sisseehitatud funktsiooni
set(). Erialaset()meetod on see, et see tagastab erinevad elemendid. - Importides saate antud loendist duplikaate eemaldada
OrderedDictfromkollektsioonid. See on saadaval alates python 2.7-st.OrderedDictdicthoolitseb selle eest, et tagastataks teile erinevad elemendid vรตtme olemasolu jรคrjekorras. - Vรตite kasutada tsรผklit, mille abil me lรคbime รผksuste loendi duplikaatide eemaldamiseks.
- Meetod
unique()Numpy moodulist vรตib aidata meil duplikaadi antud loendist eemaldada. - Panda moodulil on a
unique()meetod, mis annab meile antud loendist ainulaadsed elemendid. - Loendi mรตistmise ja loendamise kombinatsiooni kasutatakse dubleerivate elementide loendist eemaldamiseks. Loendamine tagastab loendi iga elemendi loenduriga objekti.
