Como Remover Elementos Duplicados de uma Lista em Python
Uma lista é uma estrutura de dados fundamental em Python que mantém uma coleção ordenada de itens como inteiros, strings ou objetos personalizados. É o equivalente em Python de um array em outras linguagens.
Abaixo estão técnicas comprovadas para remover elementos duplicados de uma lista preservando ordem e legibilidade.
- Remover duplicatas usando set
- Remover duplicatas com lista temporária
- Remover duplicatas usando OrderedDict (ou dict.fromkeys)
- Remover duplicatas com loop for simples
- Remover duplicatas via list comprehension
- Remover duplicatas com unique() do NumPy
- Remover duplicatas com unique() do Pandas
- Remover duplicatas com enumerate() e list comprehension
Remover duplicatas usando um set
A função embutida set() do Python elimina duplicatas retornando apenas elementos únicos. Converta a lista para set e depois de volta para lista para preservar o formato de coleção.
my_list = [1,1,2,3,2,2,4,5,6,2,1] my_final_list = set(my_list) print(list(my_final_list))
Saída:
[1, 2, 3, 4, 5, 6]
Remover duplicatas usando uma lista temporária
Esta abordagem cria uma lista vazia, itera sobre a lista original e anexa apenas itens que ainda não foram vistos.
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)
Saída:
List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2] List After removing duplicates [1, 2, 3, 4, 5, 6]
Remover duplicatas usando OrderedDict (ou dict.fromkeys)
Para Python 3.5+, um dict simples preserva ordem de inserção, então dict.fromkeys() pode ser usado para manter valores únicos em ordem.
my_list = ['a','x','a','y','a','b','b','c'] my_final_list = dict.fromkeys(my_list) print(list(my_final_list))
Saída:
['a', 'x', 'y', 'b', 'c']
Remover duplicatas com loop for simples
Percorra a lista, adicionando itens a uma nova lista apenas se não apareceram antes.
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(myFinallist)
Saída:
[1, 2, 3, 4, 5, 6]
Remover duplicatas via list comprehension
List comprehensions oferecem sintaxe concisa mantendo legibilidade.
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)
Saída:
[1, 2, 3, 4, 5, 6]
Remover duplicatas com unique() do NumPy
A função unique() do NumPy retorna os elementos únicos ordenados de um array.
import numpy as np my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = np.unique(my_list).tolist() print(myFinalList)
Saída:
[1, 2, 3, 4, 5, 6]
Remover duplicatas usando unique() do Pandas
Similarmente, Pandas oferece um método leve unique() que funciona em objetos semelhantes a listas.
import pandas as pd my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = pd.unique(my_list).tolist() print(myFinalList)
Saída:
[1, 2, 3, 4, 5, 6]
Remover duplicatas com enumerate() e list comprehension
Combinar enumerate() com list comprehension permite remover duplicatas preservando a primeira ocorrência de cada elemento.
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(my_finallist)
Saída:
[1, 2, 3, 4, 5, 6]
Resumo
- Usar
set()é a forma mais rápida de remover duplicatas, embora não preserve ordem. - Listas temporárias ou loops for mantêm a ordem original mas são ligeiramente menos concisos.
- Dicionários ordenados ou
dict.fromkeys()preservam ordem e são muito eficientes. - NumPy e Pandas fornecem soluções de uma linha para fluxos de trabalho numéricos ou pesados em DataFrame.
- List comprehensions com
enumerate()oferecem estilo funcional legível e que preserva ordem.
python
- Dominando Tipos de Dados em Python: Guia Prático
- Dominando Operadores em Python: Guia Completo
- Dominando a Declaração Pass em Python: Guia Prático
- Dominando Argumentos de Funções em Python: Parâmetros Posicionais, Nomeados e Padrão
- Dominando a Função range() do Python: Do Básico ao Avançado
- Dominando Listas em Python: Append, Sort, Length & List Comprehensions (Guia Prático)
- Calculando Médias em Python: Guia Prático
- Python list.count(): Guia Especializado com Exemplos Práticos
- Como Remover Itens de uma Lista em Python: remove(), pop(), clear() e del
- Python List index(): Como Encontrar Posições de Elementos com Exemplos Práticos