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
OrderedDictfrom
kollektsioonid. See on saadaval alates python 2.7-st.OrderedDictdict
hoolitseb 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.