Como remover duplicatas de uma lista em Python
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.
Entรฃo, aqui veremos diferentes maneiras pelas quais podemos remover duplicatas de uma determinada lista em Python.
Mรฉtodo 1) Remover duplicatas da lista usando Set
Para remover as duplicatas 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 muitas duplicatas que precisamos remover e recuperar apenas os elementos distintos. A lista รฉ dada ao set() funรงรฃo embutida. Later a lista final รฉ exibida usando o list() funรงรฃo integrada, conforme mostrado no exemplo abaixo.
A saรญda 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 duplicatas de um determinado list, vocรช pode usar uma lista temporรกria vazia. Para isso primeiro, vocรช terรก que percorrer a lista com duplicatas e adicionar os itens exclusivos ร lista temporรกria. Later a lista temporรกria รฉ atribuรญda ร lista principal.
Exemplo
Aqui estรก um exemplo prรกtico usando 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 duplicatas da lista fornecida importando OrderedDict das coleรงรตes. Estรก disponรญvel a partir do python2.7. OrderedDict se encarrega de retornar os elementos distintos em uma ordem em que a chave estรก presente.
Vamos fazer uso de uma lista e usar fromkeys() mรฉtodo disponรญvel em OrderedDict para obter os elementos exclusivos da lista.
Para fazer uso de OrderedDict.fromkey() mรฉtodo, vocรช deve importar OrderedDict das coleรงรตes, conforme mostrado abaixo:
from collections import OrderedDict
Aqui estรก um exemplo para remover duplicatas usando OrderedDict.fromkeys() mรฉtodo.
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 3.5+ em diante, podemos fazer uso do regular dict.fromkeys() para obter os elementos distintos da lista. O dict.fromkeys() os mรฉtodos retornam chaves que sรฃo exclusivas e ajudam a eliminar os valores duplicados.
Um exemplo que mostra o funcionamento de dict.fromkeys() em uma lista para fornecer itens exclusivos รฉ 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 para vazio, ou seja myFinallist = [].Dentro do loop for, adicione a verificaรงรฃo se os itens da lista existem no array myFinallist. Se os itens nรฃo existirem, adicione o item ao array myFinallist usando o comando append() mรฉtodo.
Portanto, sempre que o item duplicado for encontrado ele jรก estarรก presente no array myFinallist e nรฃo serรก inserido. Vamos agora verificar o mesmo no 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 Numpy unique().
O mรฉtodo unique() do mรณdulo Numpy pode nos ajudar a remover duplicatas da lista fornecida.
Para trabalhar com o primeiro mรณdulo numpy de importaรงรฃo do Numpy, vocรช precisa seguir estas etapas:
Etapa 1) Importar mรณdulo Numpy
import numpy as np
Passo 2) Use sua lista com duplicatas dentro do mรฉtodo exclusivo conforme mostrado abaixo. A saรญda รฉ convertida de volta para um formato de lista usando tolist() mรฉtodo.
myFinalList = np.unique(my_list).tolist()
Passo 3) Por fim imprima a lista conforme mostrado abaixo:
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 unique() mรฉtodo que nos darรก os elementos รบnicos da lista fornecida.
Para trabalhar com o mรณdulo Pandas, vocรช precisa seguir estas etapas:
Passo 1) Importar mรณdulo Pandas
import pandas as pd
Passo 2) Use sua lista com duplicatas dentro unique() mรฉtodo conforme mostrado abaixo:
myFinalList = pd.unique(my_list).tolist()
Passo 3) Imprima a lista conforme mostrado abaixo:
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, a combinaรงรฃo de compreensรฃo de lista e enumeraรงรฃo 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. C
Cada elemento รฉ verificado 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]
Resumo
- Para remover as duplicatas de uma lista, vocรช pode usar a funรงรฃo integrada
set(). A especialidade doset()mรฉtodo รฉ que ele retorna elementos distintos. - Vocรช pode remover duplicatas da lista fornecida importando
OrderedDictfromcoleรงรตes. Estรก disponรญvel a partir do python2.7.OrderedDictdictse encarrega de retornar os elementos distintos em uma ordem em que a chave estรก presente. - Vocรช pode usar um loop for que percorreremos a lista de itens para remover duplicatas.
- O mรฉtodo
unique()do mรณdulo Numpy pode nos ajudar a remover duplicatas da lista fornecida. - O mรณdulo Pandas possui um
unique()mรฉtodo que nos darรก os elementos รบnicos da lista fornecida. - A combinaรงรฃo de compreensรฃo e enumeraรงรฃo da lista รฉ usada para remover os elementos duplicados da lista. Enumerate retorna um objeto com um contador para cada elemento da lista.
