Sąrašas yra konteineris, kuriame yra skirtingų „Python“ objektų, kurie gali būti sveiki skaičiai, žodžiai, reikšmės ir kt. Tai yra masyvo kitose programavimo kalbose atitikmuo.
Taigi čia bus nagrinėjami įvairūs būdai, kuriais galime pašalinti dublikatus iš pateikto sąrašo.
Šioje pamokoje sužinosite:
- Pašalinkite kopijas iš sąrašo naudodami „Nustatyti“
- Pašalinkite dublikatus iš sąrašo naudodami laikiną sąrašą.
- Pašalinkite dublikatus iš sąrašo naudodami „Dict“
- Pašalinkite dublikatus iš sąrašo naudodami „for-loop“
- Pašalinkite dublikatus iš sąrašo, naudodamiesi supratimu apie sąrašą
- Pašalinkite dublikatus iš sąrašo naudodami „Numpy unique ()“ metodą.
- Pašalinkite dublikatus iš sąrašo naudodami „Pandas“ metodus
- Pašalinkite dublikatus naudodami išvardijimą () ir supratimą apie sąrašą
Pašalinkite kopijas iš sąrašo naudodami „Nustatyti“
Norėdami pašalinti dublikatus iš sąrašo, galite naudoti įmontuotą funkcijų rinkinį (). Metodo set () ypatumas yra tas, kad jis pateikia skirtingus elementus.Mes turime sąrašą: [1,1,2,3,2,2,4,5,6,2,1]. Sąraše yra daug dublikatų, kuriuos turime pašalinti ir sugrąžinti tik skirtingus elementus. Sąrašas pateikiamas „set“ („built-in“) funkcijai. Vėliau galutinis sąrašas rodomas naudojant sąrašo () integruotą funkciją, kaip parodyta toliau pateiktame pavyzdyje.
Gaunama išvestis yra atskiri elementai, kur pašalinami visi elementų dublikatai.
my_list = [1,1,2,3,2,2,4,5,6,2,1]my_final_list = set(my_list)print(list(my_final_list))
Išvestis:
[1, 2, 3, 4, 5, 6]
Pašalinkite dublikatus iš sąrašo naudodami laikiną sąrašą
Norėdami pašalinti dublikatus iš nurodyto sąrašo, galite naudoti tuščią laikiną sąrašą. Pirmiausia turėsite peržiūrėti sąrašą su dublikatais ir pridėti unikalius elementus prie laikino sąrašo. Vėliau laikinas sąrašas priskiriamas pagrindiniam sąrašui.
Čia yra veikiantis pavyzdys naudojant laikiną sąrašą.
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)
Išvestis:
List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]List After removing duplicates [1, 2, 3, 4, 5, 6]
Pašalinkite dublikatus iš sąrašo naudodami „Dict“
Importuodami „OrderedDict“ iš kolekcijų, mes galime pašalinti dublikatus iš pateikto sąrašo. Jį galima įsigyti nuo python2.7 ir toliau. „OrderedDict“ pasirūpina grąžinti jums skirtingus elementus tokia tvarka, kokia yra raktas.
Pasinaudokime sąrašu ir „fromkeys“ () metodu, esančiu „OrderedDict“, kad gautume unikalius elementus iš sąrašo.
Norėdami naudoti „OrderedDict.fromkey ()“ metodą, turite importuoti „OrderedDict“ iš kolekcijų, kaip parodyta žemiau:
from collections import OrderedDict
Štai pavyzdys, kaip pašalinti dublikatus naudojant „OrderedDict.fromkeys ()“ metodą.
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))
Išvestis:
['a', 'x', 'y', 'b', 'c']
Nuo „Python 3.5+“ ir naujesnių versijų galime naudoti įprastus dict.fromkeys (), kad gautume skirtingus elementus iš sąrašo. Metodai „dict.fromkeys ()“ pateikia unikalius raktus, kurie padeda atsikratyti pasikartojančių reikšmių.
Šis pavyzdys, rodantis sąrašo dict.fromkeys () veikimą, nurodant unikalius elementus, yra toks:
my_list = ['a','x','a','y','a','b','b','c']my_final_list = dict.fromkeys(my_list)print(list(my_final_list))
Išvestis:
['a', 'x', 'y', 'b', 'c']
Pašalinkite dublikatus iš sąrašo naudodami „for-loop“
Naudodami „for-loop“, mes eisime per elementų sąrašą, kad pašalintume dublikatus.
Pirmiausia inicializuokite masyvą, kad jis būtų tuščias, ty myFinallist = []. Viduje for-loop pridėkite patikrą, ar sąrašo elementai yra masyvo myFinallist. Jei elementų nėra, pridėkite elementą prie masyvo myFinallist naudodami priedą () metodas.
Taigi, kai tik pasitaikys elemento dublikatas, jis jau bus „myFinallist“ masyve ir nebus įterptas. Patikrinkime tą patį toliau pateiktame pavyzdyje:
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))
Išvestis:
[1, 2, 3, 4, 5, 6]
Pašalinkite dublikatus iš sąrašo, naudodamiesi supratimu apie sąrašą
Sąrašų supratimas yra „Python“ funkcijos, kurios naudojamos kuriant naujas sekas (pvz., Sąrašus, žodynus ir kt.) Naudojant jau sukurtas sekas. Tai padeda sumažinti ilgesnes kilpas ir palengvinti kodo skaitymą ir priežiūrą.
Pasinaudokime supratimo sąrašu, kad pašalintume dublikatus iš pateikto sąrašo.
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)
Išvestis:
[1, 2, 3, 4, 5, 6]
Pašalinkite dublikatus iš sąrašo naudodami „Numpy unique ()“ metodą.
„Numpy“ modulio unikalus () metodas gali padėti pašalinti dublikatą iš pateikto sąrašo.
Norėdami dirbti su „Numpy first import numpy“ moduliu, turite atlikti šiuos veiksmus:
1 žingsnis ) Importuokite „Numpy“ modulį
import numpy as np
2 žingsnis) Naudokite savo sąrašą su dublikatais unikaliame metode, kaip parodyta žemiau. Rezultatas konvertuojamas atgal į sąrašo formatą naudojant tolist () metodą.
myFinalList = np.unique(my_list).tolist()
3 žingsnis) Galiausiai atsispausdinkite sąrašą, kaip parodyta žemiau:
print(myFinalList)
Galutinis kodas su išvestimi yra toks:
import numpy as npmy_list = [1,2,2,3,1,4,5,1,2,6]myFinalList = np.unique(my_list).tolist()print(myFinalList)
Išvestis:
[1, 2, 3, 4, 5, 6]
Pašalinkite dublikatus iš sąrašo naudodami „Pandas“ metodus
„Pandas“ modulis turi unikalų () metodą, kuris suteiks mums unikalius elementus iš pateikto sąrašo.
Norėdami dirbti su „Pandas“ moduliu, turite atlikti šiuos veiksmus:
1 žingsnis) Importuokite „ Pandas“ modulį
import pandas as pd
2 žingsnis. Naudokite savo sąrašą su unikalių () metodų kopijomis, kaip parodyta žemiau:
myFinalList = pd.unique(my_list).tolist()
3 žingsnis. Atspausdinkite sąrašą, kaip parodyta žemiau:
print(myFinalList)
Galutinis kodas su išvestimi yra toks:
import pandas as pdmy_list = [1,2,2,3,1,4,5,1,2,6]myFinalList = pd.unique(my_list).tolist()print(myFinalList)
Išvestis:
[1, 2, 3, 4, 5, 6]
Pašalinkite dublikatus naudodami išvardijimą () ir supratimą apie sąrašą
Čia sąrašo supratimo ir išvardijimo derinys pašalina pasikartojančius elementus. „Enumerate“ grąžina objektą su skaitikliu kiekvienam sąrašo elementui. Pavyzdžiui, (0,1), (1,2) ir kt. Čia pirmoji reikšmė yra indeksas, o antroji - sąrašo elementas. W
Kiekvienas elementas tikrinamas, jei jo yra sąraše, ir jei jis yra, jis pašalinamas iš sąrašo.
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))
Išvestis:
[1, 2, 3, 4, 5, 6]
Santrauka
- Norėdami pašalinti dublikatus iš sąrašo, galite naudoti įmontuotą funkcijų rinkinį (). Metodo set () ypatumas yra tas, kad jis pateikia skirtingus elementus.
- Importuodami „OrderedDictfrom“ kolekcijas, galite pašalinti dublikatus iš pateikto sąrašo. Jį galima įsigyti nuo python2.7 ir toliau. „OrderedDictdict“ pasirūpina grąžinti jums skirtingus elementus tokia tvarka, kokia yra raktas.
- Norėdami pašalinti dublikatus, galite naudoti „for-loop“, kad mes pereisime elementų sąrašą.
- „Numpy“ modulio unikalus () metodas gali padėti pašalinti dublikatą iš pateikto sąrašo.
- „Pandas“ modulis turi unikalų () metodą, kuris suteiks mums unikalius elementus iš pateikto sąrašo.
- Sąrašo supratimo ir išvardijimo derinys naudojamas norint pašalinti pasikartojančius elementus iš sąrašo. „Enumerate“ grąžina objektą su skaitikliu kiekvienam sąrašo elementui.