"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 verificar com eficiência a existência de elementos em uma lista: atalhos e práticas recomendadas

Como verificar com eficiência a existência de elementos em uma lista: atalhos e práticas recomendadas

Publicado em 2024-11-12
Navegar:766

How to Efficiently Check for Element Existence in a List: Shortcuts and Best Practices

Verificando a existência de elementos em uma lista usando atalhos

É uma tarefa comum verificar se um ou mais elementos residem em uma lista. Em vez de criar uma função elaborada, você pode utilizar as seguintes abordagens concisas.

O Python ou operador avalia seus argumentos sequencialmente, retornando o primeiro valor verdadeiro ou não vazio. Embora isto possa parecer uma solução, é insuficiente no caso de listas. Conforme demonstrado acima, (1 ou 2) em a é avaliado como Falso, enquanto (2 ou 1) em a é avaliado como Verdadeiro. Isso acontece porque 1 é avaliado como False em um contexto booleano, resultando na expressão sendo equivalente a False em a.

Um método mais eficiente e legível é empregar uma compreensão de lista ou interseção de conjunto. Usando a compreensão de lista, você pode filtrar os elementos da primeira lista com base em sua presença na segunda lista. Por exemplo:

L1 = [2, 3, 4]
L2 = [1, 2]
[i for i in L1 if i in L2]  # Returns [2]

Alternativamente, você pode converter as listas em conjuntos, realizar a interseção de conjuntos e utilizar o valor booleano do conjunto resultante. Esta abordagem é vantajosa ao lidar com elementos duplicados de forma eficiente:

S1 = set(L1)
S2 = set(L2)
S1.intersection(S2)  # Returns set([2])

Tanto as listas vazias quanto os conjuntos vazios são avaliados como False, permitindo que você avalie sua presença diretamente usando a lógica booleana.

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