Obtenha a diferença entre duas listas em Python
-
Use
set.difference()
para encontrar a diferença entre duas listas em Python -
Use
set.symmetric_difference()
para encontrar a diferença entre duas listas em Python -
Use a palavra-chave
in
para encontrar a diferença entre as duas listas em Python -
Use a biblioteca
NumPy
para encontrar a diferença entre duas listas em Python
Existem muitas operações realizadas em estruturas de dados, como listas, dicionários, tuplas e matrizes. Em Python, essas estruturas de dados são usadas em quase todos os programas. Uma dessas estruturas de dados são as listas em Python. Listas na programação Python ajudam a armazenar mais de um item em apenas uma variável. Descobrir a diferença entre duas listas é uma tarefa muito comum que quase todo programador realiza.
Este tutorial demonstrará várias maneiras de obter a diferença entre duas listas em Python.
Use set.difference()
para encontrar a diferença entre duas listas em Python
O método set()
ajuda o usuário a converter qualquer iterável em uma sequência iterável, que também é chamada de conjunto. Os iteráveis podem ser uma lista, um dicionário ou uma tupla.
A função set.difference()
é usada para retornar a diferença entre os dois conjuntos. Essa função basicamente elimina os elementos comuns em dois conjuntos.
list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]
difference_1 = set(list_1).difference(set(list_2))
difference_2 = set(list_2).difference(set(list_1))
list_difference = list(difference_1.union(difference_2))
print(list_difference)
Resultado:
[50, 5, 40, 25, 60, 15]
Para este método, o primeiro passo é armazenar as duas listas em duas variáveis. A função set()
é usada para converter essas listas em conjuntos. Na mesma etapa, a função set.difference()
é usada para encontrar a diferença entre os dois conjuntos. Observe que a variável difference_1
obtém os elementos em list_1
e não em list_2
.
A variável difference_2
obtém os elementos que estão em list_2
e não em list_1
. Depois disso, a função union
é usada para obter todos os elementos das variáveis difference_1
e difference_2
. Além disso, a função list()
é usada para converter ambos os conjuntos em listas novamente. Finalmente, a lista resultante é impressa.
Use set.symmetric_difference()
para encontrar a diferença entre duas listas em Python
Aqui, o método set()
é usado para converter ambas as listas em conjuntos inicialmente.
O método symmetric_difference()
é usado para retornar os elementos que estão no primeiro ou no segundo conjunto. Este método não retorna a interseção como os elementos comuns dos dois conjuntos.
list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]
set_difference = set(list_1).symmetric_difference(set(list_2))
list_difference = list(set_difference)
print(list_difference)
Resultado:
[5, 40, 15, 50, 25, 60]
O método set()
também é usado para converter listas em conjuntos. Depois de obter a diferença, a função list()
é usada para obter e converter o conjunto final, como converter set_difference
de volta em uma lista.
Use a palavra-chave in
para encontrar a diferença entre as duas listas em Python
A palavra-chave in
ajuda a verificar se um elemento está presente em uma sequência iterável como uma lista ou não.
A função append()
também é usada neste método. append()
é usado para adicionar elementos a uma lista existente; não cria uma nova lista, mas modifica a lista inicial adicionando elementos a ela.
list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]
list_difference = []
for element in list_1:
if element not in list_2:
list_difference.append(element)
print(list_difference)
Resultado:
[5, 15, 25]
Neste método, primeiro inicializamos a lista final que deve ser impressa com zero elementos. Então usamos um loop for para iniciar a iteração com a primeira lista, que é list_1
. Depois disso, usamos a palavra-chave not in
para verificar se um elemento está ou não na segunda lista.
Finalmente, usamos o método append()
para adicionar os elementos que não estão na segunda lista à lista inicial, ou seja, list_difference
. A desvantagem desse método, porém, é que ele não retorna os elementos da segunda lista.
Para tornar este método mais simples, use compreensão de listas. A compreensão de listas é um método que ajuda a criar uma nova lista com os elementos de uma lista existente.
list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]
list_difference = [element for element in list_1 if element not in list_2]
print(list_difference)
Resultado:
[5, 15, 25]
Use a biblioteca NumPy
para encontrar a diferença entre duas listas em Python
A biblioteca NumPy
do Python é uma biblioteca muito usada. Esta biblioteca ajuda o usuário a realizar tarefas em matrizes, matrizes e álgebra linear.
Neste método, três funções da biblioteca NumPy
são usadas para obter a diferença entre duas listas. Essas três funções são np.array()
, np.setdiff1d()
e np.concatenate()
.
Um array é a estrutura de dados primária da biblioteca NumPy
. A função np.array()
ajuda a criar um array e auxilia no trabalho com eles.
A função np.setdiff1d()
ajuda a encontrar a diferença de conjunto entre dois arrays e retornar os valores que estão no primeiro array e não no segundo array.
A função np.concatenate
é usada para combinar dois ou mais arrays NumPy
juntos. Veja o exemplo abaixo:
import numpy as np
list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]
array_1 = np.array(list_1)
array_2 = np.array(list_2)
difference_1 = np.setdiff1d(array_1, array_2)
difference_2 = np.setdiff1d(array_2, array_1)
list_difference = np.concatenate((difference_1, difference_2))
print(list(list_difference))
Resultado:
[5, 15, 25, 40, 50, 60]
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn