Zoznam je kontajner, ktorý obsahuje rôzne objekty Pythonu, čo môžu byť celé čísla, slová, hodnoty atď. Je ekvivalentom poľa v iných programovacích jazykoch.
Tu teda prejdeme rôznymi spôsobmi, ako môžeme z daného zoznamu odstrániť duplikáty.
V tomto návode sa dozviete:
- Odstráňte duplikáty zo zoznamu pomocou Nastaviť
- Odstráňte duplikáty zo zoznamu pomocou dočasného zoznamu.
- Odstráňte duplikáty zo zoznamu pomocou aplikácie Dict
- Odstráňte duplikáty zo zoznamu pomocou cyklu for-loop
- Odstráňte duplikáty zo zoznamu pomocou porozumenia zoznamu
- Odstráňte duplikáty zo zoznamu pomocou metódy Numpy unique ().
- Odstráňte duplikáty zo zoznamu pomocou metód Pandas
- Odstráňte duplikáty pomocou funkcie enumerate () a porozumenia zoznamu
Odstráňte duplikáty zo zoznamu pomocou Nastaviť
Na odstránenie duplikátov zo zoznamu môžete využiť vstavanú sadu funkcií (). Špecialitou metódy set () je, že vracia odlišné prvky.Máme zoznam: [1,1,2,3,2,2,4,5,6,2,1]. Zoznam obsahuje veľa duplikátov, ktoré musíme odstrániť a získať späť iba odlišné prvky. Zoznam je daný vstavanou funkciou set (). Neskôr sa konečný zoznam zobrazí pomocou zabudovanej funkcie list (), ako je to znázornené v príklade nižšie.
Výstup, ktorý dostaneme, sú odlišné prvky, kde sú eliminované všetky duplikované prvky.
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ýkon:
[1, 2, 3, 4, 5, 6]
Odstráňte duplikáty zo zoznamu pomocou dočasného zoznamu
Na odstránenie duplikátov z daného zoznamu môžete použiť prázdny dočasný zoznam. Najprv budete musieť prehľadať zoznam s duplikátmi a pridať jedinečné položky do dočasného zoznamu. Neskôr je dočasný zoznam priradený k hlavnému zoznamu.
Tu je pracovný príklad využívajúci dočasný zoznam.
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)
Výkon:
List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]List After removing duplicates [1, 2, 3, 4, 5, 6]
Odstráňte duplikáty zo zoznamu pomocou aplikácie Dict
Duplikáty z daného zoznamu môžeme odstrániť importom OrderedDict zo zbierok. Je k dispozícii od verzie python2.7. OrderedDict sa postará o to, aby vám vrátil jednotlivé prvky v poradí, v akom je prítomný kľúč.
Využime zoznam a na získanie jedinečných prvkov zo zoznamu použite metódu fromkeys () dostupnú v OrderedDict.
Ak chcete využiť metódu OrderedDict.fromkey (), musíte importovať OrderedDict zo zbierok, ako je uvedené nižšie:
from collections import OrderedDict
Tu je príklad odstránenia duplikátov pomocou metódy 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))
Výkon:
['a', 'x', 'y', 'b', 'c']
Od verzie Python 3.5+ a novšej môžeme na získanie jednotlivých prvkov zo zoznamu použiť bežné dict.fromkeys (). Metódy dict.fromkeys () vracajú kľúče, ktoré sú jedinečné a pomáhajú zbaviť sa duplicitných hodnôt.
Príklad, ktorý ukazuje fungovanie funkcie dict.fromkeys () v zozname na poskytnutie jedinečných položiek, je nasledovný:
my_list = ['a','x','a','y','a','b','b','c']my_final_list = dict.fromkeys(my_list)print(list(my_final_list))
Výkon:
['a', 'x', 'y', 'b', 'c']
Odstráňte duplikáty zo zoznamu pomocou cyklu for-loop
Pomocou cyklu for-loop prejdeme zoznam položiek, aby sme odstránili duplikáty.
Najprv inicializujte pole na vyprázdnenie, tj myFinallist = []. Vo vnútri cyklu for-add pridajte kontrolu, či položky v zozname existujú v poli myFinallist. Ak položky neexistujú, pridajte položku do poľa myFinallist pomocou append () metóda.
Takže kedykoľvek sa vyskytne duplicitná položka, bude už prítomná v poli myFinallist a nebude vložená. Pozrime sa teraz na to isté v príklade nižšie:
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ýkon:
[1, 2, 3, 4, 5, 6]
Odstráňte duplikáty zo zoznamu pomocou porozumenia zoznamu
Porozumenia zoznamov sú funkcie Pythonu, ktoré sa používajú na vytváranie nových sekvencií (ako sú zoznamy, slovníky atď.) Pomocou už vytvorených sekvencií. To vám pomôže zmenšiť dlhšie slučky a zjednodušiť čítanie a údržbu kódu.
Využime porozumenie zoznamu na odstránenie duplikátov z uvedeného zoznamu.
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ýkon:
[1, 2, 3, 4, 5, 6]
Odstráňte duplikáty zo zoznamu pomocou metódy Numpy unique ().
Metóda unique () z modulu Numpy nám môže pomôcť odstrániť duplikáty z daného zoznamu.
Ak chcete pracovať s modulom Numpy pri prvom importovaní, musíte postupovať podľa týchto krokov:
Krok 1 ) Importujte modul Numpy
import numpy as np
Krok 2) Použite svoj zoznam s duplikátmi v rámci jedinečnej metódy, ako je uvedené nižšie. Výstup sa prevedie späť do formátu zoznamu pomocou metódy tolist ().
myFinalList = np.unique(my_list).tolist()
Krok 3) Nakoniec vytlačte zoznam, ako je uvedené nižšie:
print(myFinalList)
Výsledný kód s výstupom je nasledovný:
import numpy as npmy_list = [1,2,2,3,1,4,5,1,2,6]myFinalList = np.unique(my_list).tolist()print(myFinalList)
Výkon:
[1, 2, 3, 4, 5, 6]
Odstráňte duplikáty zo zoznamu pomocou metód Pandas
Modul Pandas má jedinečnú metódu (), ktorá nám dá jedinečné prvky z daného zoznamu.
Ak chcete pracovať s modulom Pandas, musíte postupovať podľa týchto krokov:
Krok 1) Importujte modul Pandas
import pandas as pd
Krok 2) Použite svoj zoznam s duplikátmi v rámci metódy unique (), ako je uvedené nižšie:
myFinalList = pd.unique(my_list).tolist()
Krok 3) Vytlačte zoznam, ako je uvedené nižšie:
print(myFinalList)
Výsledný kód s výstupom je nasledovný:
import pandas as pdmy_list = [1,2,2,3,1,4,5,1,2,6]myFinalList = pd.unique(my_list).tolist()print(myFinalList)
Výkon:
[1, 2, 3, 4, 5, 6]
Odstráňte duplikáty pomocou funkcie enumerate () a porozumenia zoznamu
Tu kombinácia porozumenia zoznamu a vymenovania, aby sa odstránili duplicitné prvky. Funkcia Enumerate vráti objekt s počítadlom proti každému prvku v zozname. Napríklad (0,1), (1,2) atď. Tu je prvou hodnotou index a druhou hodnotou položka zoznamu. Ž
Každý prvok je skontrolovaný, či v zozname existuje, a ak áno, je zo zoznamu odstránený.
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ýkon:
[1, 2, 3, 4, 5, 6]
Zhrnutie
- Na odstránenie duplikátov zo zoznamu môžete využiť vstavanú sadu funkcií (). Špecialitou metódy set () je, že vracia odlišné prvky.
- Duplikáty z daného zoznamu môžete odstrániť importom kolekcií OrderedDictfrom. Je k dispozícii od verzie python2.7. OrderedDictdict sa stará o to, aby vám vrátil jednotlivé prvky v poradí, v akom je kľúč prítomný.
- Môžete použiť cyklus for-loop, ktorým prechádzame zoznamom položiek, aby sme odstránili duplikáty.
- Metóda unique () z modulu Numpy nám môže pomôcť odstrániť duplikáty z daného zoznamu.
- Modul Pandas má jedinečnú metódu (), ktorá nám dá jedinečné prvky z daného zoznamu.
- Kombinácia porozumenia zoznamu a vymenovania sa používa na odstránenie duplicitných prvkov zo zoznamu. Funkcia Enumerate vráti objekt s počítadlom proti každému prvku v zozname.