< Return to Video

CTA CAP03 2025 VA03 PYTHON LIST COMPREHENSION

  • 0:08 - 0:10
    A gente já conhece
    a estrutura de listas
  • 0:10 - 0:12
    e uma das tarefas mais
    comuns que a gente vai fazer,
  • 0:12 - 0:17
    basicamente, no dia a dia, é
    filtrar itens através de uma lista.
  • 0:17 - 0:19
    E tem uma técnica chamada
    "list comprehension"
  • 0:19 - 0:21
    que vai deixar o nosso
    código muito mais claro
  • 0:21 - 0:24
    e bem parecido com o inglês
    que a gente vai ver agora.
  • 0:24 - 0:26
    Aqui no VS Code,
    eu já criei uma lista
  • 0:26 - 0:29
    com alguns números aleatórios, tem
    números pares e números ímpares.
  • 0:29 - 0:31
    Imagine, agora, que a gente
    precisa criar uma nova lista
  • 0:31 - 0:33
    a partir dessa aqui,
    só que, dessa vez,
  • 0:33 - 0:37
    uma lista que contenha
    apenas números pares.
  • 0:37 - 0:40
    A lista vai ser essa aqui,
    "numeros_pares",
  • 0:40 - 0:42
    que vai começar
    sem nenhum item.
  • 0:42 - 0:47
    A gente sabe qual é a regra para
    definir se um número é par ou não,
  • 0:47 - 0:49
    basta a gente
    dividir ele por 2
  • 0:49 - 0:52
    e ver se o resultado é
    ou não um número inteiro.
  • 0:52 - 0:53
    Se ele for um número inteiro,
  • 0:53 - 0:56
    significa que aquele número
    é um número par, tudo bem?
  • 0:56 - 0:59
    Então, a gente poderia
    criar um loop
  • 0:59 - 1:02
    usando a estrutura
    de repetição for,
  • 1:02 - 1:06
    para percorrer item a item
    fazendo essa verificação.
  • 1:06 - 1:09
    Mas existem formas mais
    simples de fazer isso no Python,
  • 1:09 - 1:13
    e uma delas é usando o que nós
    chamamos de "list comprehension".
  • 1:13 - 1:15
    O list comprehension
    se baseia em, basicamente,
  • 1:15 - 1:18
    a gente escrever uma consulta
    com base em uma lista
  • 1:18 - 1:21
    em que a gente
    consegue definir filtros
  • 1:21 - 1:23
    e até mesmo transformações
    do resultado.
  • 1:23 - 1:27
    Ou seja, a gente consegue
    partir de uma lista base
  • 1:27 - 1:30
    e escrever alguma condição
    do tipo "a partir da lista tal,
  • 1:30 - 1:35
    chame cada item de alguma coisa
    e, então, retorne apenas os itens
  • 1:35 - 1:38
    cuja condição X
    for atendida".
  • 1:38 - 1:41
    Eu sei, ficou um pouco complicado
    de entender apenas falando,
  • 1:41 - 1:44
    mas na hora que a gente escrever,
    isso vai ficar bem claro.
  • 1:44 - 1:44
    Vamos lá.
  • 1:44 - 1:47
    Aqui no código, a gente ainda
    está com aquela nossa lista vazia.
  • 1:47 - 1:50
    O que a gente vai fazer é
    começar expandindo ela aqui
  • 1:50 - 1:54
    para que a gente tenha espaço
    para escrever a list comprehension.
  • 1:54 - 1:55
    Então, lembra
    do que eu comentei,
  • 1:55 - 1:59
    a gente vai precisar meio
    que percorrer, indiretamente,
  • 1:59 - 2:01
    cada um daqueles
    itens e, para isso,
  • 2:01 - 2:04
    a gente vai ter que chamar
    esses itens de alguma coisa.
  • 2:04 - 2:06
    Como a gente está falando
    de uma lista de números,
  • 2:06 - 2:08
    nada mais justo do que,
    para cada número,
  • 2:08 - 2:10
    a gente chame
    ele de número.
  • 2:10 - 2:12
    Então, por isso, a gente vai
    escrever exatamente isso,
  • 2:12 - 2:17
    "for numero", ou seja, para
    cada número, de onde?
  • 2:17 - 2:21
    Da lista "numeros", então
    a gente escreve "in numeros",
  • 2:21 - 2:24
    ou seja, a gente estará
    percorrendo a lista "numeros"
  • 2:24 - 2:27
    e, para cada item, a gente
    vai chamar de "numero".
  • 2:27 - 2:30
    E, aqui embaixo, a gente
    consegue colocar a condicional
  • 2:30 - 2:33
    que vai fazer com que esse número
    entre ou não no nosso filtro.
  • 2:33 - 2:34
    No nosso caso,
  • 2:34 - 2:38
    a gente quer, justamente, ver
    se o resultado da divisão por 2
  • 2:38 - 2:40
    é um número quebrado.
  • 2:40 - 2:43
    Se ele for, esse item
    não entra na lista.
  • 2:43 - 2:46
    E, no Python, a gente tem
    um operador específico para isso,
  • 2:46 - 2:47
    que é o módulo, veja só.
  • 2:47 - 2:53
    Aqui, a gente vai colocar
    o "if numero", módulo 2,
  • 2:53 - 2:55
    isso vai fazer, basicamente,
    com que ele pegue
  • 2:55 - 2:58
    especificamente
    o resultado da divisão,
  • 2:58 - 3:02
    então, nesse caso, se o resultado
    for 0, esse número é par.
  • 3:02 - 3:04
    Então, é isso que a gente
    vai colocar aqui.
  • 3:04 - 3:06
    Então, eu estou percorrendo
    a lista de números,
  • 3:06 - 3:08
    chamando cada
    item de "numero"
  • 3:08 - 3:13
    e colocando, no resultado,
    apenas os itens cuja divisão por 2
  • 3:13 - 3:17
    resulte em 0
    como resultado de sobra.
  • 3:17 - 3:22
    E, aqui no começo, eu coloco o que
    eu quero retornar desse meu filtro,
  • 3:22 - 3:24
    ou seja, a gente acabou
    de filtrar a lista
  • 3:24 - 3:28
    e está apenas com a lista
    de retorno em memória.
  • 3:28 - 3:30
    Caso a gente queira fazer alguma
    transformação nesse valor,
  • 3:30 - 3:34
    como multiplicar por 2
    ou qualquer outra coisa do tipo,
  • 3:34 - 3:35
    esse é o momento.
  • 3:35 - 3:38
    No nosso caso, a gente quer
    apenas retornar esse item,
  • 3:38 - 3:41
    então eu vou basicamente
    colocar, aqui, "numero".
  • 3:41 - 3:44
    Dessa forma, a nossa leitura
    fica desse jeito aqui:
  • 3:44 - 3:46
    para o número que está
    dentro de "numeros",
  • 3:46 - 3:49
    se o número for par,
    você retorna o número.
  • 3:49 - 3:51
    E o resultado disso tudo
  • 3:51 - 3:54
    vai ser colocado dentro
    da variável "numeros_pares".
  • 3:54 - 3:57
    E, aqui no final da execução,
    eu vou executar um print
  • 3:57 - 3:59
    colocando o "numeros_pares"
  • 3:59 - 4:02
    para que a gente consiga checar
    se isso aqui realmente está certo.
  • 4:02 - 4:08
    Dentro do terminal, então, eu vou
    executar o "python.exe .\main.py"
  • 4:08 - 4:10
    e pronto, a gente consegue
    ver que os números pares
  • 4:10 - 4:13
    foram extraídos
    com sucesso daquela lista.
  • 4:13 - 4:17
    Caso eu queira, pelo contrário,
    os números ímpares,
  • 4:17 - 4:18
    basta que eu negue
    essa condição
  • 4:18 - 4:20
    e os números ímpares
    serão retornados.
  • 4:20 - 4:24
    Então, a gente consegue
    ver ali, agora, o 1, 67, 29 e 91
  • 4:24 - 4:27
    e, também, a gente consegue
    fazer a manipulação
  • 4:27 - 4:29
    que eu comentei
    anteriormente.
  • 4:29 - 4:31
    O nosso objetivo
    inicial já foi atendido,
  • 4:31 - 4:35
    mas suponha que a gente precise
    retornar esses números ímpares,
  • 4:35 - 4:37
    só que em números pares,
  • 4:37 - 4:40
    a gente poderia vir aqui
    e multiplicar por 2.
  • 4:40 - 4:44
    O list comprehension fez
    o filtro e, desse filtro,
  • 4:44 - 4:47
    antes de retornar para a lista,
    a gente fez uma transformação,
  • 4:47 - 4:51
    multiplicando cada um dos itens
    que foram retornados por 2.
  • 4:51 - 4:56
    E, dessa forma, a gente tem
    o resultado "2, 134, 58, 182",
  • 4:56 - 4:58
    que são basicamente o dobro
    daqueles valores ímpares
  • 4:58 - 5:00
    que a gente tinha no começo.
Title:
CTA CAP03 2025 VA03 PYTHON LIST COMPREHENSION
Video Language:
Portuguese, Brazilian
Duration:
05:03

Portuguese, Brazilian subtitles

Incomplete

Revisions Compare revisions