Às vezes, ao trabalhar com registros, podemos ter o problema de remover os registros que ocorrem mais de uma vez. Este tipo de aplicação pode ocorrer no domínio de desenvolvimento web. Vamos discutir algumas maneiras pelas quais essa tarefa pode ser executada.

Método # 1: Usando compreensão de lista + set() + count()
A abordagem inicial que pode ser aplicada é que podemos iterar em cada tupla e verificar sua contagem na lista usando count(), se for maior que um, podemos removê-los, convertendo-os em set.

test_list = [(3, 4), (4, 5), (3, 4), (3, 6), (4, 5), (6, 7)] 
print("The original list : " + str(test_list)) 
res = list(set([ele for ele in test_list if not test_list.count(ele) > 1])) 
print("All the non Duplicate from list are : " + str(res)) 
Resultado :
A lista original: [(3, 4), (4, 5), (3, 4), (3, 6), (4, 5), (6, 7)]
Todos os não duplicados da lista são: [(6, 7), (3, 6)]

 

Método 2: Usando Counter() + items()+ compreensão de lista
A combinação das funções acima também pode ser usada para executar esta tarefa específica. Nisto, apenas obtemos a contagem de cada ocorrência do elemento usando Counter() como dicionário e extraímos todos aqueles cujo valor é igual a 1.



from collections import Counter 
test_list = [(3, 4), (4, 5), (3, 6), (3, 4), (4, 5), (6, 7)] 
print("The original list : " + str(test_list)) 
res = [ele for ele, count in Counter(test_list).items() if count == 1] 
print("All the non Duplicate from list are : " + str(res)) 
Resultado :
A lista original: [(3, 4), (4, 5), (3, 4), (3, 6), (4, 5), (6, 7)]
Todos os não duplicados da lista são: [(6, 7), (3, 6)]