como comparar duas listas em Python

Tempo estimado de leitura: 2 atas

Muitas vezes vai ser-lhe pedido para comparar listas, e você precisa de uma maneira rápida para completar.

Aqui vamos percorrer três maneiras de completar isto, se você tiver mais comentários abaixo.

Laçada para encontrar valores comuns entre listas

Um simples loop pode ajudá-lo a encontrar dados que são comuns a duas listas:

# comparar para valores semelhantes
lista1 = ["1", "2", "3", "4"]
lista2 = ["1", "2", "3", "4", "5"]

para i na lista1:
    para j na lista2:
        se i na lista j:
            imprimir(i)

que cede:

1
2
3
4

Comparar para um item de uma lista e não para a outra

Talvez haja momentos em que você deseje encontrar apenas os valores que estão em uma lista e não na outra.

Abaixo usamos uma linha de código usando a compreensão de lista, que faz o mesmo que um loop:

lista1 = ["1", "2", "3", "4"]
lista2 = ["1", "2", "3", "4", "5"]
para o item em [x para x na lista2 se x não estiver na lista1]:
    imprimir(item)

o que dá o resultado de:

5

comparar listas usando o método set

A terceira via utiliza conjuntos python, que essencialmente encontra a intersecção entre duas listas, como um diagrama Venn.

Aqui usamos o conjunto para encontrar os valores que não são comuns a cada lista usando a subtração:

lista1 = ["1", "2", "3", "4"]
lista2 = ["1", "2", "3", "4", "5"]
a = set(list1)
b = set(list2)
c = b-a
imprimir(c)

o que te dá:

{'5'}

Alternativamente, você poderia encontrar o que é comum a ambos:

lista1 = ["1", "2", "3", "4"]
lista2 = ["1", "2", "3", "4", "5"]
a = set(list1)
b = set(list2)
c = a.intersecção(b)
imprimir(c)

e o seu resultado será:

{'1', '3', '4', '2'}

Lembre-se que a utilização de conjuntos irá devolvê-los sem ordem, se você quiser que eles sejam encomendados, então aplique o seguinte ao código acima:

a = set(list1)
b = set(list2)
c = a.intersecção(b)
d=sorted(c)
impressão(tipo(d))
imprimir(d)

e a saída será:

<class 'list'>
['1', '2', '3', '4']

Uma coisa a notar é que o método classificado acima retorna o conjunto como uma lista e não como um conjunto.

Há muitos recursos online onde você pode aprender sobre conjuntos.