Em Python, a compreensão de lista oferece uma maneira concisa de criar listas com base em iteráveis existentes. Porém, surgiu uma dúvida quanto à compreensão de uma lista envolvendo uma instrução if.
O objetivo era comparar dois iteráveis, aeb, e imprimir apenas os elementos que apareciam em ambos. O código pretendido era assim:
print([y if y not in b for y in a])
Infelizmente, esse código resultou em um erro de sintaxe. A questão está na ordem da construção if-else. Em Python, a instrução condicional deve vir após o loop for na compreensão da lista, a menos que seja usada como um operador ternário.
Sintaxe correta:
[y for y in a if y not in b]
Este código itera através de cada elemento y em a. Se y não for encontrado em b, ele será adicionado à lista. A lista resultante conterá os elementos que aparecem em a e b.
Sintaxe do operador ternário alternativo:
[y if y not in b else other_value for y in a]
Este código usa o operador ternário para especificar um valor alternativo (other_value) caso y não seja encontrado em b. Essa abordagem é menos comum e normalmente usada quando um valor padrão é necessário.
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