Python odebere duplikáty ze seznamu

Obsah:

Anonim

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.