Seznam je kontejner, který obsahuje různé objekty Pythonu, což mohou být celá čísla, slova, hodnoty atd. Je ekvivalentem pole v jiných programovacích jazycích.
Zde tedy projdeme různými způsoby, jak můžeme z daného seznamu odebrat duplikáty.
V tomto výukovém programu se naučíte:
- Odeberte duplikáty ze seznamu pomocí Set
- Odeberte duplikáty ze seznamu pomocí dočasného seznamu.
- Odeberte duplikáty ze seznamu pomocí Dict
- Odeberte duplikáty ze seznamu pomocí smyčky for-loop
- Odstraňte duplikáty ze seznamu pomocí porozumění seznamu
- Odeberte duplikáty ze seznamu pomocí metody Numpy unique ().
- Odeberte duplikáty ze seznamu pomocí metod Pandas
- Odstraňte duplikáty pomocí enumerate () a porozumění seznamu
Odeberte duplikáty ze seznamu pomocí Set
Chcete-li odstranit duplikáty ze seznamu, můžete využít integrovanou sadu funkcí (). Specialitou metody set () je, že vrací odlišné prvky.Máme seznam: [1,1,2,3,2,2,4,5,6,2,1]. Seznam obsahuje mnoho duplikátů, které musíme odstranit a získat zpět pouze odlišné prvky. Seznam je dán integrované funkci set (). Později se konečný seznam zobrazí pomocí integrované funkce list (), jak je znázorněno v následujícím příkladu.
Výstup, který dostaneme, jsou odlišné prvky, kde jsou odstraněny všechny 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ýstup:
[1, 2, 3, 4, 5, 6]
Odeberte duplikáty ze seznamu pomocí dočasného seznamu
Chcete-li odebrat duplikáty z daného seznamu, můžete použít prázdný dočasný seznam. Nejprve budete muset procházet seznamem s duplikáty a přidat jedinečné položky do dočasného seznamu. Později je dočasný seznam přiřazen hlavnímu seznamu.
Zde je funkční příklad využívající dočasný seznam.
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ýstup:
List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]List After removing duplicates [1, 2, 3, 4, 5, 6]
Odeberte duplikáty ze seznamu pomocí Dict
Můžeme odstranit duplikáty z daného seznamu importem OrderedDict ze sbírek. Je k dispozici od pythonu 2.7 a dále. OrderedDict se postará o vrácení jednotlivých prvků v pořadí, ve kterém je klíč přítomen.
Využijeme seznam a pomocí metody fromkeys () dostupné v OrderedDict získáme jedinečné prvky ze seznamu.
Chcete-li použít metodu OrderedDict.fromkey (), musíte importovat OrderedDict ze sbírek, jak je znázorněno níže:
from collections import OrderedDict
Zde je příklad odebrání duplikátů pomocí metody 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ýstup:
['a', 'x', 'y', 'b', 'c']
Od Pythonu 3.5 a novějších můžeme k získání odlišných prvků ze seznamu použít běžný dict.fromkeys (). Metody dict.fromkeys () vracejí klíče, které jsou jedinečné a pomáhají zbavit se duplicitních hodnot.
Příklad, který ukazuje fungování dict.fromkeys () na seznamu, který dává jedinečné položky, je následující:
my_list = ['a','x','a','y','a','b','b','c']my_final_list = dict.fromkeys(my_list)print(list(my_final_list))
Výstup:
['a', 'x', 'y', 'b', 'c']
Odeberte duplikáty ze seznamu pomocí smyčky for-loop
Pomocí cyklu for-loop projdeme seznam položek, abychom odstranili duplikáty.
Nejprve inicializujte pole k vyprázdnění, tj. MyFinallist = []. Uvnitř smyčky for přidejte kontrolu, zda položky v seznamu existují v poli myFinallist. Pokud položky neexistují, přidejte položku do pole myFinallist pomocí append () metoda.
Takže kdykoli dojde k duplicitní položce, bude již přítomna v poli myFinallist a nebude vložena. Podívejme se nyní na to samé v níže uvedeném příkladu:
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ýstup:
[1, 2, 3, 4, 5, 6]
Odstraňte duplikáty ze seznamu pomocí porozumění seznamu
Porozumění seznamu jsou funkce Pythonu, které se používají k vytváření nových sekvencí (jako jsou seznamy, slovníky atd.) Pomocí sekvencí, které již byly vytvořeny. To vám pomůže snížit delší smyčky a usnadnit čtení a údržbu kódu.
Využijeme porozumění seznamu k odstranění duplikátů z uvedeného seznamu.
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ýstup:
[1, 2, 3, 4, 5, 6]
Odeberte duplikáty ze seznamu pomocí metody Numpy unique ().
Metoda unique () z modulu Numpy nám může pomoci odstranit duplikát ze zadaného seznamu.
Chcete-li pracovat s modulem Numpy, nejprve importujte modul NumPy, musíte postupovat podle těchto kroků:
Krok 1 ) Importujte modul Numpy
import numpy as np
Krok 2) Použijte svůj seznam s duplikáty uvnitř jedinečné metody, jak je uvedeno níže. Výstup je převeden zpět do formátu seznamu pomocí metody tolist ().
myFinalList = np.unique(my_list).tolist()
Krok 3) Nakonec vytiskněte seznam, jak je uvedeno níže:
print(myFinalList)
Výsledný kód s výstupem je následující:
import numpy as npmy_list = [1,2,2,3,1,4,5,1,2,6]myFinalList = np.unique(my_list).tolist()print(myFinalList)
Výstup:
[1, 2, 3, 4, 5, 6]
Odeberte duplikáty ze seznamu pomocí metod Pandas
Modul Pandas má jedinečnou metodu (), která nám poskytne jedinečné prvky ze zadaného seznamu.
Chcete-li pracovat s modulem Pandas, musíte postupovat podle těchto kroků:
Krok 1) Importujte modul Pandas
import pandas as pd
Krok 2) Použijte svůj seznam s duplikáty uvnitř metody unique (), jak je uvedeno níže:
myFinalList = pd.unique(my_list).tolist()
Krok 3) Vytiskněte seznam, jak je znázorněno níže:
print(myFinalList)
Výsledný kód s výstupem je následující:
import pandas as pdmy_list = [1,2,2,3,1,4,5,1,2,6]myFinalList = pd.unique(my_list).tolist()print(myFinalList)
Výstup:
[1, 2, 3, 4, 5, 6]
Odstraňte duplikáty pomocí enumerate () a porozumění seznamu
Zde kombinace porozumění seznamu a výčtu odstraní duplicitní prvky. Výčet vrací objekt s čítačem pro každý prvek v seznamu. Například (0,1), (1,2) atd. Zde je první hodnotou index a druhou hodnotou položka seznamu. Ž
Každý prvek je zkontrolován, zda v seznamu existuje, a pokud ano, je ze seznamu odstraněn.
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ýstup:
[1, 2, 3, 4, 5, 6]
souhrn
- Chcete-li odstranit duplikáty ze seznamu, můžete využít integrovanou sadu funkcí (). Specialitou metody set () je, že vrací odlišné prvky.
- Duplikáty z daného seznamu můžete odebrat importem kolekcí OrderedDictfrom. Je k dispozici od pythonu 2.7 a dále. OrderedDictdict se postará o vrácení jednotlivých prvků v pořadí, ve kterém je klíč přítomen.
- Můžete použít smyčku pro smyčku, kterou projdeme seznamem položek, abychom odstranili duplikáty.
- Metoda unique () z modulu Numpy nám může pomoci odstranit duplikát ze zadaného seznamu.
- Modul Pandas má jedinečnou metodu (), která nám poskytne jedinečné prvky ze zadaného seznamu.
- Kombinace porozumění seznamu a výčtu se používá k odstranění duplicitních prvků ze seznamu. Výčet vrací objekt s čítačem pro každý prvek v seznamu.