< Return to Video

CTA CAP03 2025 VA05 PYTHON SETS

  • 0:08 - 0:10
    Chegou a hora de a gente
    dar uma olhada no "set",
  • 0:10 - 0:13
    mais uma estrutura de dados
    que representa um conjunto de itens.
  • 0:13 - 0:16
    É claro que a gente vai comparar
    o set com as outras estruturas.
  • 0:16 - 0:19
    E, quando a gente fala dessa aqui,
    a gente está falando também
  • 0:19 - 0:22
    de uma espécie de lista,
    ou um conjunto de itens,
  • 0:22 - 0:26
    mas o seu ponto forte é
    que ela não é ordenável,
  • 0:26 - 0:29
    ou seja, a gente não tem
    o conceito de indexação
  • 0:29 - 0:31
    dentro dos itens de um set.
  • 0:31 - 0:34
    A gente consegue adicionar
    e consegue remover itens,
  • 0:34 - 0:39
    consegue iterar, mas não consegue
    acessar os itens individualmente
  • 0:39 - 0:40
    usando os seus índices.
  • 0:40 - 0:44
    Vamos lá para o VS Code criar
    um set e ver como isso funciona.
  • 0:44 - 0:48
    Eu já tenho o arquivo main.py
    criado aqui dentro do VS Code,
  • 0:48 - 0:52
    então vamos começar criando
    uma variável chamada "numeros".
  • 0:52 - 0:55
    E o set varia um pouco
    das outras estruturas,
  • 0:55 - 0:59
    porque a sua declaração não
    vai usar colchetes, parênteses
  • 0:59 - 1:00
    ou alguma coisa do tipo,
  • 1:00 - 1:04
    mas sim um construtor
    específico do tipo set,
  • 1:04 - 1:08
    ou seja, a gente vai precisar
    escrever "set" e executar isso aqui.
  • 1:08 - 1:12
    Pronto, a partir desse momento,
    eu já tenho o meu set construído
  • 1:12 - 1:13
    e eu vou escrever
    o código aqui
  • 1:13 - 1:16
    para exibir os itens
    dele lá no terminal.
  • 1:16 - 1:19
    Então, eu vou colocar
    aqui "print(numeros)"
  • 1:19 - 1:23
    e vou executar
    o "python.exe .\main.py".
  • 1:23 - 1:27
    Legal, eu tenho aqui, basicamente,
    a execução do meu set
  • 1:27 - 1:29
    sem nenhum item dentro.
  • 1:29 - 1:30
    Diferentemente
    das outras estruturas,
  • 1:30 - 1:33
    o set não permite que a gente
    coloque valores iniciais
  • 1:33 - 1:35
    durante a inicialização do tipo.
  • 1:35 - 1:37
    Então, a gente vai,
    basicamente,
  • 1:37 - 1:40
    vir aqui embaixo e colocar
    "numeros.add"
  • 1:40 - 1:42
    que é o método que permite
    que a gente coloque novos valores
  • 1:42 - 1:44
    naquele conjunto.
  • 1:44 - 1:46
    Então, eu vou começar
    colocando, aqui, o 1,
  • 1:46 - 1:50
    depois eu vou colocar o valor
    2 e, por último, o valor 3.
  • 1:50 - 1:52
    Se a gente executar o nosso
    código novamente,
  • 1:52 - 1:54
    a gente já consegue ver, aqui
    no terminal, entre chaves,
  • 1:54 - 1:57
    os itens daquele
    nosso conjunto.
  • 1:57 - 2:00
    E, agora, a gente vai colocar à prova
    aquilo que a gente comentou,
  • 2:00 - 2:05
    porque, como eu disse, o set é
    um conjunto não ordenado, ou seja,
  • 2:05 - 2:09
    os itens, embora estejam
    aparecendo na ordem 1, 2, 3
  • 2:09 - 2:12
    e, muito provavelmente,
    vão respeitar essa ordem
  • 2:12 - 2:14
    conforme a gente
    for executando,
  • 2:14 - 2:18
    em tempo de execução, não
    necessariamente estão nessa ordem.
  • 2:18 - 2:20
    E, se o nosso set
    for muito grande,
  • 2:20 - 2:22
    a gente pode até mesmo
    presenciar casos
  • 2:22 - 2:26
    em que, ao exibir um item uma vez,
    um item está em uma posição tal
  • 2:26 - 2:27
    e, na outra vez,
  • 2:27 - 2:30
    ele vai estar em uma posição
    completamente diferente.
  • 2:30 - 2:33
    E, por esse motivo, se a gente
    insistir e tentar acessar,
  • 2:33 - 2:36
    usando os colchetes,
    alguma posição específica,
  • 2:36 - 2:40
    por exemplo, a terceira
    posição, no índice 2,
  • 2:40 - 2:42
    o Python retornará
    um erro para a gente,
  • 2:42 - 2:45
    falando que o set não é
    "subscriptable", ou seja,
  • 2:45 - 2:48
    a gente não consegue acessar
    uma indexação específica.
  • 2:48 - 2:51
    Se a característica de acessar
    os itens através de índice
  • 2:51 - 2:54
    for realmente necessária,
    o set não é a melhor estrutura
  • 2:54 - 2:56
    para o que você
    está tentando fazer.
  • 2:56 - 2:57
    O set brilha mesmo
  • 2:57 - 3:01
    na sua característica de não
    permitir itens duplicados.
  • 3:01 - 3:03
    Ou seja, enquanto
    na lista e na tupla
  • 3:03 - 3:06
    a gente consegue colocar
    itens repetidos lá dentro,
  • 3:06 - 3:08
    no caso do set é
    um pouco diferente,
  • 3:08 - 3:11
    ele simplesmente não aceita
    esse tipo de operação.
  • 3:11 - 3:14
    Mas ele também não dá
    um erro, ele só não a faz.
  • 3:14 - 3:16
    Se a gente tentar
    executar o método add
  • 3:16 - 3:18
    passando o valor,
    por exemplo, 2
  • 3:18 - 3:21
    e, logo em seguida,
    fazer a mesma operação,
  • 3:21 - 3:22
    ele vai adicionar
    no primeiro momento,
  • 3:22 - 3:25
    mas a segunda operação vai
    ser completamente ignorada,
  • 3:25 - 3:28
    fazendo, assim, com que a gente
    não tenha itens repetidos, olha só.
  • 3:28 - 3:32
    Aqui no nosso código, a gente
    já colocou o 1, o 2 e o 3.
  • 3:32 - 3:35
    Olha o que acontece se eu
    repetir o 1 mais algumas vezes.
  • 3:35 - 3:37
    Eu vou tirar, aqui,
    esse acesso de índice,
  • 3:37 - 3:39
    porque ele é
    uma sintaxe inválida,
  • 3:39 - 3:42
    e eu vou limpar o terminal
    para poder executar de novo.
  • 3:42 - 3:46
    Repare que a gente manteve
    os nossos mesmos três itens,
  • 3:46 - 3:49
    porque, na linha três, eu
    consegui adicionar o valor 1,
  • 3:49 - 3:51
    mas, nas linhas seguintes,
  • 3:51 - 3:54
    o Python ignorou completamente
    a ação de adicionar,
  • 3:54 - 3:57
    porque a estrutura do set não
    permite esse tipo de cenário,
  • 3:57 - 3:59
    e é uma característica dele.
  • 3:59 - 4:02
    A gente também
    consegue remover itens,
  • 4:02 - 4:04
    e isso é bem parecido
    com as outras estruturas,
  • 4:04 - 4:08
    basta que a gente passe para ele
    o valor que a gente quer remover.
  • 4:08 - 4:10
    E como, nesse caso,
    não tem repetição,
  • 4:10 - 4:13
    a gente não precisa nem se preocupar
    com múltiplas ocorrências.
  • 4:13 - 4:14
    Dá uma olhada.
  • 4:14 - 4:19
    Aqui no final, eu vou vir e vou
    executar "numeros.remove",
  • 4:19 - 4:22
    e, para ele, eu vou passar,
    por exemplo, o número 2,
  • 4:22 - 4:26
    que é aquele valor que a gente
    adicionou logo depois do 1.
  • 4:26 - 4:29
    Executando esse código, a gente
    consegue ver que o 1 está lá,
  • 4:29 - 4:31
    sem nenhuma repetição,
    o 3 também,
  • 4:31 - 4:34
    mas o 2 não faz mais
    parte desse conjunto.
  • 4:34 - 4:35
    A gente está começando
    a perceber, aqui,
  • 4:35 - 4:38
    que cada estrutura tem suas
    próprias características
  • 4:38 - 4:40
    e isso é muito importante.
  • 4:40 - 4:43
    Existem cenários em que a gente
    vai conseguir, por exemplo,
  • 4:43 - 4:46
    usar uma lista e usar
    o set ao mesmo tempo.
  • 4:46 - 4:49
    Mas, dependendo do que
    a gente precisar fazer,
  • 4:49 - 4:51
    uma vai atender
    melhor do que a outra.
  • 4:51 - 4:55
    Se a gente precisasse, por exemplo,
    receber 10 números de um usuário,
  • 4:55 - 4:57
    de forma que esses números
    não fossem repetidos,
  • 4:57 - 5:01
    usando uma lista, a gente teria
    que, a cada iteração de um loop,
  • 5:01 - 5:05
    verificar se o que o usuário digitou
    já está dentro daquela lista.
  • 5:05 - 5:09
    E, se estiver, a gente ignora essa
    operação e pede o número novamente.
  • 5:09 - 5:10
    Trabalhar com o set
  • 5:10 - 5:12
    vai permitir que a gente
    chegue no mesmo resultado,
  • 5:12 - 5:14
    mas de uma forma
    bem mais simples,
  • 5:14 - 5:15
    porque esse comportamento
  • 5:15 - 5:18
    em que a gente teria que adicionar
    através de uma condição
  • 5:18 - 5:20
    é algo nativo daquele tipo,
  • 5:20 - 5:22
    e a gente não vai ter
    que se preocupar com isso.
Title:
CTA CAP03 2025 VA05 PYTHON SETS
Video Language:
Portuguese, Brazilian
Duration:
05:25

Portuguese, Brazilian subtitles

Incomplete

Revisions Compare revisions