"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como encontrar a intersecção de múltiplas listas em Python?

Como encontrar a intersecção de múltiplas listas em Python?

Publicado em 15/11/2024
Navegar:110

How to Find the Intersection of Multiple Lists in Python?

Python: cruzando várias listas

Ao trabalhar com várias listas, encontrar seus elementos comuns pode ser uma operação valiosa. Embora Python forneça uma função conveniente para cruzar duas listas (set(a).intersection(b)), a tarefa se torna um pouco mais complexa ao lidar com mais de duas listas.

Vamos considerar um cenário onde temos um lista de listas d contendo várias listas (no seu exemplo, d = [[1,2,3,4], [2,3,4], [3,4,5,6,7]]). Para encontrar a interseção de todas as listas dentro de d, podemos aproveitar as operações de conjunto e funções integradas do Python.

Uma abordagem é usar o método set.intersection() repetidamente. No entanto, este método só funciona em dois conjuntos de cada vez, por isso precisamos aplicá-lo iterativamente. Veja como podemos fazer isso:

intersection = set(d[0])
for lst in d[1:]:
    intersection = intersection.intersection(set(lst))

print(intersection)  # Outputs: {3, 4}

Outra solução concisa e eficiente utiliza o operador * do Python e a função map():

intersection = set.intersection(*map(set, d))

print(intersection)  # Outputs: {3, 4}

Nesta solução, usamos a função map() para converter cada lista em d em um conjunto. O operador * então descompacta essa sequência de conjuntos nos argumentos de set.intersection(), permitindo-nos encontrar a interseção de todos os conjuntos simultaneamente.

Ambas as abordagens encontram efetivamente a interseção de múltiplas listas armazenadas dentro uma lista de listas. Aproveitando as operações de conjunto do Python, podemos identificar facilmente os elementos comuns entre qualquer número de listas.

Declaração de lançamento Este artigo é reproduzido em: 1729519336 Se houver alguma violação, entre em contato com [email protected] para excluí -lo.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3