-
A gente já conhece a estrutura de listas
-
e uma das tarefas mais comuns
que a gente vai fazer, basicamente
-
no dia a dia,
é filtrar itens através de uma lista.
-
E tem uma técnica chamada List Corporation
que vai deixar o nosso código
-
muito mais claro e bem parecido
com o inglês que a gente vai ver agora.
-
Aqui não vai se COD.
-
Eu já criei uma lista
-
com alguns números aleatórios
que têm números pares e números ímpares.
-
Imagine agora que a gente precisa criar
uma nova lista a partir dessa daqui.
-
Só que dessa vez, uma lista
que contenha apenas números pares.
-
A lista vai ser essa daqui, números pares,
-
que vai começar sem nenhum item.
-
A gente sabe qual é a regra para definir
se um número é par ou não.
-
Basta a gente dividir ele por dois e ver
se o resultado é ou não um número inteiro.
-
Se ele for um número inteiro, significa
que aquele número é um número par.
-
Tudo bem,
então a gente poderia criar um loop
-
usando a estrutura de repetição for
para percorrer item a item.
-
Fazendo essa verificação.
-
Mas existem formas mais simples
de fazer isso
-
no Python e uma delas
é usando o que nós chamamos de list.
-
Como compor o List componente
um se baseia em basicamente
-
a gente escrever uma consulta com base em
uma lista em que a gente consegue definir
-
filtros
e até mesmo transformações no resultado.
-
Ou seja,
a gente consegue partir de uma lista base
-
e escrever alguma condição do tipo
a partir da lista tal.
-
Chame cada item de alguma coisa
e então retorne
-
apenas os itens
cuja a condição X for atendida.
-
Eu sei, ficou um pouco
complicado de entender, apenas falando,
-
mas na hora que a gente escrever
isso vai ficar bem claro.
-
Vamos lá.
-
Aqui no código a gente ainda está
com aquela nossa lista vazia.
-
O que a gente vai fazer
é começar expandindo ela aqui
-
para que a gente tem espaço
para escrever a list, como por ex.
-
Então lembra do que eu comentei?
-
A gente vai precisar
meio que percorrer indiretamente
-
cada um daqueles itens e para isso
a gente vai ter que chamar esses itens
-
de alguma coisa.
-
Como eu
está falando de uma lista de números,
-
nada mais justo do que para cada número
a gente chame ele de número.
-
Então, por isso a gente vai escrever
exatamente isso for número,
-
ou seja, para cada número de onde
da lista, números.
-
Então a gente escreve em números, Ou seja,
a gente vai estar percorrendo a lista.
-
Números e para cada item
a gente vai chamar de número.
-
E aqui embaixo
a gente consegue colocar a condicional
-
que vai fazer com que esse número
entre ou não no nosso filtro.
-
No nosso caso, a gente quer justamente
ver se o resultado da divisão por dois
-
é um número quebrado.
-
Se ele for, esse item não entra na lista.
-
E no Python a gente tem um operador
específico para isso, que é o módulo.
-
Veja só.
-
Aqui a gente vai colocar o if número
-
módulo dois.
-
Isso vai fazer
-
basicamente com que ele pegue
especificamente o resultado da divisão.
-
Então, nesse caso, se o resultado for
zero, esse número é par.
-
Então é isso que a gente vai colocar aqui.
-
Então eu estou percorrendo a lista
de números, chamando cada item de número
-
e colocando no resultado
apenas os itens cuja a divisão por dois
-
resulte em zero como resultado de sobra.
-
E aqui no começo eu coloco o que eu quero
retornar desse meu filtro.
-
Ou seja, a gente acabou de filtrar a lista
-
e está apenas
com a lista de retorno em memória.
-
Caso a gente queira
fazer alguma transformação nesse valor,
-
como por exemplo, multiplicar
por dois ou qualquer outra coisa do tipo.
-
Esse é o momento.
-
No nosso caso,
a gente quer apenas retornar esse item,
-
Então eu vou basicamente colocar aqui
o número.
-
Dessa forma,
a nossa leitura fica desse jeito aqui,
-
para o número que está dentro de números.
-
Se o número for par,
então você retorna o número
-
e o resultado disso tudo vai ser colocado
dentro da variável números pares.
-
E aqui no final da execução
eu vou executar um print
-
colocando o números pares
-
para que a gente consiga checar
se isso aqui realmente está certo
-
dentro do terminal.
-
Então eu vou executar o Python e dizer bem
e pronto.
-
A gente consegue ver que os números pares
-
foram extraídos com sucesso daquela lista,
caso eu quisesse.
-
Pelo contrário, os números ímpares.
-
Basta que eu negue essa condição
e os números ímpares serão retornados.
-
Então a gente consegue ver ali, agora
um 67, 29, 91 e também
-
a gente consegue fazer a manipulação
que eu comentei anteriormente.
-
O nosso objetivo inicial já foi atendido,
mas suponha que a gente precisasse
-
retornar esses números ímpares,
só que em números pares.
-
A gente poderia vir aqui
e multiplicar por dois.
-
O List preencheu, fez o filtro
e desse filtro
-
antes de retornar para a lista,
a gente fez uma transformação
-
multiplicando cada um dos itens
que foram retornados por dois.
-
E dessa forma a gente tem o resultado
213 458 182, que são basicamente o dobro
-
daqueles valores
ímpares que a gente tinha no começo.