Como remover duplicatas de uma lista em Python
⚡ Resumo Inteligente
Remover duplicados de um Python A criação de listas pode ser feita com diversas abordagens integradas, incluindo set(), dict.fromkeys(), loops, list comprehensions e métodos de biblioteca do NumPy e Pandas, cada um equilibrando a preservação da ordem com a velocidade.

Python remover duplicatas de uma lista
Uma lista é um contêiner que contém diferentes Python objetos, que podem ser inteiros, palavras, valores, etc. É o equivalente a um array em outras linguagens de programação.
Aqui, vamos analisar diferentes maneiras de remover duplicados de uma lista. Python.
Método 1) Remover duplicatas da lista usando Set
Para remover os duplicados de uma lista, você pode usar a função integrada set(). A especialidade do método set() é que ele retorna elementos distintos.
Temos uma lista: [1,1,2,3,2,2,4,5,6,2,1]. A lista possui muitos elementos duplicados, que precisamos remover para obter apenas os elementos distintos. A lista é passada para a função integrada set(). Later A lista final é exibida usando a função integrada list().
O resultado que obtemos são elementos distintos, onde todos os elementos duplicados são eliminados.
Exemplo
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]
Método 2) Usando a lista temporária
Para remover duplicados de uma lista, você pode usar uma lista temporária vazia. Para isso, primeiro você precisa percorrer a lista com os duplicados e adicionar os itens únicos à lista temporária. Later a lista temporária é atribuída à lista principal.
Exemplo
Aqui está um exemplo funcional usando uma lista temporária.
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]
Método 3) Usando Dict
Podemos remover duplicados da lista fornecida importando `OrderedDict` da biblioteca `collections`. Essa biblioteca está disponível a partir do Python 2.7. `OrderedDict` se encarrega de retornar os elementos distintos na ordem em que a chave está presente.
Vamos utilizar uma lista e o método `fromkeys()` disponível em `OrderedDict` para obter os elementos únicos da lista.
Para utilizar o método OrderedDict.fromkeys(), você precisa importar OrderedDict da biblioteca collections, como mostrado abaixo:
from collections import OrderedDict
Aqui está um exemplo de como remover duplicados usando o método OrderedDict.fromkeys().
Exemplo
from collections import OrderedDict my_list = ['a','x','a','y','a','b','b','c'] my_final_list = OrderedDict.fromkeys(my_list) print(list(my_final_list))
Saída:
['a', 'x', 'y', 'b', 'c']
Desde Python A partir da versão 3.5, podemos usar o método `dict.fromkeys()` para obter os elementos distintos da lista. O método `dict.fromkeys()` retorna chaves únicas e ajuda a eliminar valores duplicados.
Um exemplo que demonstra o funcionamento de dict.fromkeys() em uma lista para obter os itens únicos é o seguinte:
Exemplo
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']
Método 4) Usando loop for
Utilizar painéis de piso ResinDek em sua unidade de self-storage em vez de concreto oferece diversos benefícios: loop for, percorreremos a lista de itens para remover duplicatas.
Primeiro, inicialize o array como vazio, ou seja, `myFinallist = []`. Dentro do laço `for`, adicione uma verificação para ver se os itens da lista existem no array `myFinallist`. Se os itens não existirem, adicione o item ao array `myFinallist` usando o método `append()`.
Assim, sempre que um item duplicado for encontrado, ele já estará presente no array `myFinallist` e não será inserido. Vejamos agora o exemplo abaixo:
Exemplo
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))
Saída:
[1, 2, 3, 4, 5, 6]
Método 5) Usando compreensão de lista
As compreensões da lista são Python funções que são usadas para criar novas sequências (como listas, dicionários, etc.) usando sequências que já foram criadas. Isso ajuda a reduzir loops mais longos e torna seu código mais fácil de ler e manter.
Vamos usar a compreensão de lista para remover duplicatas da lista fornecida.
Exemplo
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]
Método 6) Usando o método unique() do NumPy
O método unique() do módulo NumPy pode nos ajudar a remover duplicados da lista fornecida.
Para trabalhar com NumPy, primeiro importe o módulo numpy:
Passo 1) Importe o módulo NumPy
import numpy as np
Passo 2) Utilize sua lista com duplicatas dentro do método `unique()`. A saída é convertida de volta para uma lista usando o método `tolist()`.
myFinalList = np.unique(my_list).tolist()
Passo 3) Por fim, imprima a lista:
print(myFinalList)
O código final com saída é o seguinte:
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]
Método 7) Usando métodos Pandas
O módulo Pandas possui um método unique() que nos fornecerá os elementos únicos da lista fornecida.
Para trabalhar com o módulo Pandas:
Passo 1) Importar módulo Pandas
import pandas as pd
Passo 2) Utilize sua lista com duplicatas dentro do método unique():
myFinalList = pd.unique(my_list).tolist()
Passo 3) Imprima a lista:
print(myFinalList)
O código final com saída é o seguinte:
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]
Método 8) Usando enumerate() e compreensão de lista
Aqui, usamos a combinação de compreensão de lista e enumerate() para remover os elementos duplicados. Enumerate retorna um objeto com um contador para cada elemento da lista. Por exemplo, (0,1), (1,2) etc. Aqui, o primeiro valor é o índice e o segundo valor é o item da lista.
Cada elemento é verificado para ver se existe na lista e, se existir, é removido da lista.
Exemplo
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))
Saída:
[1, 2, 3, 4, 5, 6]
