Obtenha a diferença entre duas listas em Python

Lakshay Kapoor 30 janeiro 2023
  1. Use set.difference() para encontrar a diferença entre duas listas em Python
  2. Use set.symmetric_difference() para encontrar a diferença entre duas listas em Python
  3. Use a palavra-chave in para encontrar a diferença entre as duas listas em Python
  4. Use a biblioteca NumPy para encontrar a diferença entre duas listas em Python
Obtenha 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 avatar Lakshay Kapoor avatar

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

Artigo relacionado - Python List