"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 > Quando a sintaxe de compreensão de lista requer um operador ternário em Python?

Quando a sintaxe de compreensão de lista requer um operador ternário em Python?

Publicado em 2024-11-08
Navegar:775

When Does List Comprehension Syntax Require a Ternary Operator in Python?

Enigma da compreensão de lista: filtragem condicional em iteráveis

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.

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