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.
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