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