"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 posso verificar se as listas compartilham algum item em Python?

Como posso verificar se as listas compartilham algum item em Python?

Publicado em 2024-11-08
Navegar:511

How Do I Check if Lists Share Any Items in Python?

Teste se as listas compartilham algum item em Python

Introdução

Ao trabalhar com várias listas em Python, muitas vezes é necessário determinar se algum elemento se sobrepõe entre essas listas. Isso serve como uma operação fundamental para várias tarefas de análise e manipulação de dados.

Resposta curta

A abordagem recomendada para testar a sobreposição de lista em Python é utilizar o not set(a).isdisjoint(b ) expressão. Ele oferece um método geralmente eficiente e conciso para esta tarefa.

Análise detalhada

Método 1: Definir interseção

bool(set(a) & set(b))
  • Converte ambas as listas em conjuntos e depois verifica sua interseção.
  • Relativamente lento especialmente para listas grandes pois a conversão para conjuntos consome memória adicional e time.

Método 2: Expressão do gerador com operador In

any(i in a for i in b)
  • Itera em uma lista e verifica se cada elemento é membro da outra lista.
  • Rápido quando os elementos estão perto do início da lista, mas ineficiente para listas sem elementos compartilhados ou quando os elementos compartilhados estão no final.

Método 3: Híbrido (Iteração e associação ao conjunto)

a = set(a); any(i in a for i in b)
  • Converte uma lista em um conjunto e itera pela outra lista, verificando a adesão ao conjunto.
  • Geralmente mais lento que outros métodos.

Método 4: Método isdisjoint de conjuntos

not set(a).isdisjoint(b)
  • Utiliza o método isdisjoint() de conjuntos para determinar se dois conjuntos têm algum elemento comum.
  • Rápido e eficiente para listas compartilhadas e disjuntas, especialmente quando as listas são de tamanhos diferentes.

Comparação de desempenho

Os testes de desempenho revelam que not set(a).isdisjoint(b) se destaca na maioria dos casos, especialmente para listas grandes ou situações em que os elementos compartilhados são esparsos.

Conclusão

Para testar a sobreposição de listas em Python, considere usar a expressão not set(a).isdisjoint(b), pois ela fornece uma solução confiável, eficiente e versátil em vários tamanhos e cenários de listas.

Declaração de lançamento Este artigo foi reimpresso em: 1729382836 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