Módulo 7 - Conjuntos: tem ou não tem, sem repetir
Pertence ou não pertence: a pergunta do conjunto
8 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 08/07/2026
O que você vai aprender
- Fazer o teste de pertencimento: verificar se um item está no conjunto.
- Aplicar o conjunto em listas de permissão e de bloqueio.
- Entender por que o teste no conjunto é mais rápido que varrer uma lista.
- Usar o conjunto para detectar duplicados enquanto percorre dados.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Pertence ou não pertence: a pergunta do conjunto.
Os objetivos desta aula. Fazer o teste de pertencimento: verificar se um item está no conjunto. Aplicar o conjunto em listas de permissão e de bloqueio. Entender por que o teste no conjunto é mais rápido que varrer uma lista. Usar o conjunto para detectar duplicados enquanto percorre dados.
Veja o essencial, parte por parte.
A pergunta central. A operação estrela do conjunto é o teste de pertencimento: o item está no grupo?
Por que o conjunto responde tão rápido. Você poderia fazer o teste de pertencimento com uma lista: percorrer item por item procurando o alvo.
Detectar duplicados enquanto percorre. Um uso muito prático do teste de pertencimento é achar repetidos numa sequência de dados.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
A pergunta central
Se o conjunto tivesse uma só habilidade, seria esta: responder se um item pertence ao grupo. Toda vez que um sistema decide aceitar ou barrar algo com base numa lista, é um teste de pertencimento acontecendo. O aplicativo confere se o seu e-mail está na lista de quem já se cadastrou. A portaria confere se o carro está na lista de autorizados. O filtro de palavrões confere se o termo digitado está no conjunto de palavras proibidas. A pergunta é sempre a mesma, pertence ou não pertence, e o conjunto foi feito para respondê-la com elegância. Você escreve algo como se item pertence ao conjunto então, e o programa decide o caminho.
bloqueados <- { "spam@x.com", "bot@y.com" }
email <- "maria@site.com"
se email pertence a bloqueados então
escreva("Acesso negado")
senão
escreva("Bem-vindo")
fim
// maria não está no conjunto de bloqueados: mostra Bem-vindoO teste de pertencimento decide o caminho. Uma lista de bloqueio é um conjunto consultado com pertence.
Por que o conjunto responde tão rápido
Você poderia fazer o teste de pertencimento com uma lista: percorrer item por item procurando o alvo. Funciona, mas fica lento conforme a lista cresce, porque no pior caso você varre tudo. O conjunto usa a mesma mágica de bastidor do dicionário: ele guarda os itens de um jeito que permite ir direto verificar a presença, sem examinar os outros. Por isso o teste no conjunto é quase instantâneo e quase não desacelera com o tamanho, checar num conjunto de dez ou de dez milhões custa praticamente o mesmo. É a mesma vantagem que você viu no dicionário, e pela mesma razão: os dois evitam a varredura. Quando o seu programa precisa checar presença muitas vezes, trocar a lista por um conjunto costuma ser a diferença entre rápido e travado.
🎮 Jogo da aula
Pertence ou não?
Considere o conjunto permitidos com os valores 12, 45 e 7. Decida se cada afirmação é verdadeira ou falsa.
Detectar duplicados enquanto percorre
Um uso muito prático do teste de pertencimento é achar repetidos numa sequência de dados. A ideia é manter um conjunto de já vistos e, ao percorrer os itens, para cada um perguntar: você já está no conjunto de vistos? Se sim, é um duplicado; se não, adicione-o aos vistos e siga. Assim você detecta o primeiro CPF repetido num cadastro, a primeira palavra que se repete num texto, o primeiro número que aparece duas vezes numa lista, tudo numa passada só. Compare com a alternativa sem conjunto: para cada item, você teria que varrer todos os anteriores procurando igual, o que é bem mais lento. O conjunto de vistos transforma essa busca cara numa checagem rápida a cada passo.
numeros <- [3, 8, 3, 5]
vistos <- conjunto vazio
para cada n em numeros faça
se n pertence a vistos então
escreva("Repetido: ", n)
senão
adicione(n, vistos)
fim
fim
// ao chegar no segundo 3, ele já está em vistos: mostra Repetido: 3O conjunto de vistos guarda o que já passou. Ao reencontrar um item, o teste de pertencimento acusa o duplicado.
Teste rápido
Um sistema precisa checar milhões de vezes se um e-mail está numa lista de bloqueados. Por que um conjunto vence uma lista aqui?
Perguntas frequentes
- O que é o teste de pertencimento?
- É perguntar se um item está no conjunto, com resposta sim ou não. É a operação principal do conjunto e a base de listas de permissão e bloqueio, verificação de duplicados e controle de quem já fez algo. Você escreve algo como se item pertence ao conjunto e o programa decide o caminho.
- Por que o teste no conjunto é mais rápido que na lista?
- Porque o conjunto guarda os itens de um jeito que permite verificar a presença direto, sem examinar os outros. A lista, quando não sabe a posição, precisa varrer item por item. Por isso o conjunto responde ao pertence quase instantaneamente, mesmo com milhões de elementos, enquanto a lista fica lenta.
- Qual a diferença entre lista de permissão e lista de bloqueio?
- A lista de permissão guarda o que é aceito: só quem pertence pode entrar. A de bloqueio guarda o que é barrado: quem pertence é rejeitado. As duas usam o teste de pertencimento; muda só a decisão tomada com o resultado. Conjuntos são a estrutura natural para ambas.
- Como detecto duplicados com um conjunto?
- Mantendo um conjunto de já vistos. Ao percorrer os itens, para cada um você testa se já está em vistos: se sim, é duplicado; se não, adiciona e segue. Isso encontra repetidos numa passada só, muito mais rápido que comparar cada item com todos os anteriores.
- Posso usar dicionário no lugar do conjunto para checar presença?
- Pode, usando as chaves de um dicionário e ignorando os valores, e o desempenho é parecido. Mas o conjunto expressa melhor a intenção quando você só quer saber se algo pertence, sem um valor associado. Use conjunto para presença pura; dicionário quando cada item leva a um dado.
- Checar presença num conjunto muda o conjunto?
- Não. O teste de pertencimento só consulta, não altera. Ele responde se o item está lá e pronto. Adicionar é que muda o conjunto (e só se o item for novo). Consultar é uma operação de leitura, segura de repetir quantas vezes quiser.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.