Eu acho essa sintaxe do list comprehesion muito poderosa, mas ia ser tão legal se desse para adicionar o else na filtragem. É possível?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Eu acho essa sintaxe do list comprehesion muito poderosa, mas ia ser tão legal se desse para adicionar o else na filtragem. É possível?
Olá Yuri, tudo bem?
Realmente, o List Comprehension é uma sintaxe muito poderosa do Python e pode facilitar bastante a manipulação de listas e tuplas. Quanto à sua pergunta, é possível sim adicionar o else na filtragem do List Comprehension. Para isso, basta utilizar a sintaxe "if" e "else" na ordem inversa.
Por exemplo, suponha que você queira criar uma lista com os números pares de 0 a 10, mas também quer incluir o número 11 caso ele seja par. Você pode fazer isso da seguinte forma:
numeros = [x if x % 2 == 0 else 11 for x in range(12)]Nesse caso, o List Comprehension verifica se o número é par com o "if x % 2 == 0", e se for, adiciona o próprio número "x" à lista. Caso contrário, adiciona o número 11 à lista. Note que o "if" vem antes do "else" nessa sintaxe.
Em caso de dúvidas, me coloco à disposição.
Grande abraço e bons estudos!
Obrigado! :3
Grande Yuri. Tudo certo?
A list comprehension, realmente é muito poderosa, mas como já dizia um velho ditado "Com grandes poderes, vem grandes responsabilidades!". Rsrsrsrsrsrs. Bom a list comprehension é mais indicada quando se deseja criar uma lista em Python usando apenas uma linha e isso é realmente excelente. O problema é que quanto maior for a quantidade de itens na lista mais demorado vai ser o processo e, naturalmente, vai demandar um certo custo computacional. Em algumas situações chega até a ser mais demorada do que usando o laço de repetição for. Agora imagine essa lista com muitos itens e nessas iterações precisar filtrar algo através de uma condicional simples! E se acrescentarmos uma outra opção a essa condicional, quanto tempo levaria para gerar uma lista com muitos itens? Imagino que seja por isso que ainda não implementaram de forma nativa o else em uma list comprehension, mas creio que dê, apesar de nunca ter tentado. Basta ser curioso e dar uma olhada na documentação do Python para ver a implementação e ver se tem jeito. Achei interessante a pergunta, mas nunca tentei fazer isso. Agora eu confesso que me despertou a curiosidade. Bom é isso aí...