
Passo 1 de 8
Representar valores únicos com conjuntos
Crie conjuntos vazios ou preenchidos e reconheça seus elementos válidos e a ausência de acesso por posição.
Trilha de aprendizado · Nível 3 · Tutorial 7
Usar conjuntos para representar valores únicos e comparar grupos, distinguindo situações em que listas, tuplas ou dicionários são mais adequados.
Representar valores únicos com conjuntos
Crie conjuntos vazios ou preenchidos e reconheça seus elementos válidos e a ausência de acesso por posição. 2 min
Eliminar duplicatas de uma sequência
Converta listas ou tuplas em conjuntos e confira os valores únicos sem depender da ordem de exibição. 2 min
Adicionar e descartar elementos
Atualize conjuntos com add e discard e diferencie o conteúdo alterado do retorno desses métodos. 2 min
Reunir grupos e encontrar elementos comuns
Use união e interseção para descobrir quem participa de pelo menos um grupo e quem participa dos dois. 2 min
Encontrar elementos exclusivos
Use a diferença e a diferença simétrica para identificar quem está somente em um grupo ou em exatamente um dos dois. 3 min
Verificar se um grupo está contido em outro
Use issubset para verificar a inclusão de um grupo inteiro e interprete a direção da consulta. 2 min
Escolher a coleção adequada
Escolha entre lista, tupla, dicionário e conjunto considerando acesso, ordem, repetições e alterações. 2 min
Aplicar conjuntos à comparação de inscrições
Compare inscrições de duas oficinas no seu Python 3 e confira os resultados sem depender da ordem de exibição. 4 min

Passo 1 de 8
Crie conjuntos vazios ou preenchidos e reconheça seus elementos válidos e a ausência de acesso por posição.
Um conjunto (set) reúne valores únicos: cada valor aparece uma única vez. Para criar um conjunto preenchido, escreva os elementos separados por vírgulas entre chaves, sem pares chave:valor.
Pense em pertencimento ao grupo, não em posições: conjuntos não permitem acesso por índice nem por fatia.
cores = {"azul", "verde", "amarelo"}
Os três valores pertencem ao conjunto cores. A posição no desenho não representa um índice.
Depois de criar cores = {"azul", "verde", "amarelo"}, podemos usar cores[0] para consultar "azul".
Para criar um conjunto vazio, use set(). As chaves vazias, {}, criam um dicionário.
Textos e números são exemplos de elementos aceitos em conjuntos.
participantes = set() # conjunto vazio
nomes = {"Ana", "Bia"} # conjunto de textos
codigos = {10, 20, 30} # conjunto de números
cadastro = {} # dicionário vazioAtenção
Listas e dicionários não podem ser elementos de um conjunto. Por exemplo, {[10, 20]} tenta guardar uma lista como elemento e causa TypeError. {{"nome": "Ana"}} também causa TypeError, pois tenta guardar um dicionário como elemento.
Você precisa criar um conjunto vazio chamado grupo e um conjunto com os números 10 e 20 chamado codigos. Qual alternativa atende aos dois requisitos?

Passo 2 de 8
Converta listas ou tuplas em conjuntos e confira os valores únicos sem depender da ordem de exibição.
Use set(sequencia) para criar um conjunto com os valores distintos de uma lista ou tupla. Cada valor aparece apenas uma vez no resultado, mesmo que se repita na sequência.
Por exemplo, set(["Ana", "Bia", "Ana", "Caio", "Bia"]) contém apenas Ana, Bia e Caio. Com uma tupla, funciona do mesmo jeito: set(("Ana", "Bia", "Ana")) contém apenas Ana e Bia.

Cinco ocorrências viram três valores únicos. A disposição no círculo não representa uma ordem do conjunto.
Complete com o nome que cria o conjunto:
nomes = ["Ana", "Bia", "Ana", "Caio", "Bia"]unicos = ____(nomes)
Você pode conferir o resultado com len e in. A conversão cria um novo conjunto e não altera a lista original. Se executar este código no seu Python, confira os nomes presentes, não a posição em que aparecem.
nomes = ["Ana", "Bia", "Ana", "Caio", "Bia"]
unicos = set(nomes)
print(unicos) # Contém Ana, Bia e Caio; a ordem não é garantida
print(len(unicos)) # 3
print("Bia" in unicos) # True
print(len(nomes)) # 5: a lista original continua intactaAtenção
O conjunto não registra quantas vezes cada nome apareceu e não garante a preservação da ordem original nem da ordem de inserção. Mesmo que uma impressão pareça seguir essa ordem, não conte com isso. Se precisar das ocorrências ou da sequência original, mantenha a lista; o conjunto não a substitui.
Após grupo = set(["Ivo", "Lia", "Ivo", "Ivo"]), qual afirmação é garantida?

Passo 3 de 8
Atualize conjuntos com add e discard e diferencie o conteúdo alterado do retorno desses métodos.
add(elemento) inclui um elemento no conjunto. Se ele já estiver presente, nada muda.
discard(elemento) descarta um elemento. Se ele estiver ausente, nada muda e não ocorre erro.
grupo = {"Ana"}
grupo.add("Bia") # Agora contém Ana e Bia
grupo.add("Bia") # Continua com Ana e Bia
grupo.discard("Ana") # Agora contém apenas Bia
grupo.discard("Caio") # Continua com Bia, sem erro
Adicionar Bia novamente não cria uma cópia. Descartar Caio, ausente, não altera o grupo.
O conjunto cores já existe. Complete apenas com o nome do método para incluir "azul":
cores.___("azul")
Complete apenas com o nome do método para descartar "verde", sem erro caso esteja ausente:
cores.___("verde")
add e discard alteram o próprio conjunto e retornam None, não o conjunto atualizado. Isso também vale quando a chamada não muda o conteúdo.
grupo = {"Ana"}
retorno = grupo.add("Bia")
print(grupo) # Contém Ana e Bia, em qualquer ordem
print(retorno) # None
retorno = grupo.discard("Caio")
print(grupo) # Ainda contém Ana e Bia
print(retorno) # NoneAtenção
Evite grupo = grupo.add("Bia"): depois da chamada, grupo passará a valer None. Para atualizar e continuar usando o conjunto, escreva apenas grupo.add("Bia"). O mesmo cuidado vale para discard.
Acompanhe as chamadas sem depender da ordem dos elementos.
cores = {"azul", "verde"}
cores.add("azul")
cores.discard("vermelho")
retorno = cores.discard("verde")Ao final, quais são os valores de cores e retorno?

Passo 4 de 8
Use união e interseção para descobrir quem participa de pelo menos um grupo e quem participa dos dois.
Considere dois grupos: A tem Ana e Bia; B tem Bia e Caio.
A | B: reúne quem está em pelo menos um dos grupos, incluindo quem está nos dois.A & B: seleciona somente quem está nos dois grupos.As duas operações produzem novos conjuntos, sem alterar A ou B.

Bia aparece uma única vez na união e é a única participante da interseção.
Confira os elementos, não a ordem em que aparecem. Os comentários mostram resultados possíveis.
A = {"Ana", "Bia"}
B = {"Bia", "Caio"}
reunidos = A | B
comuns = A & B
print(reunidos) # {'Ana', 'Bia', 'Caio'}
print(comuns) # {'Bia'}
print(A) # {'Ana', 'Bia'}
print(B) # {'Bia', 'Caio'}Use A = {'Ana', 'Bia'} e B = {'Bia', 'Caio'}. Associe cada pergunta à resposta.
Toque em um item e depois no par correspondente.
Se os grupos não têm elementos em comum, a interseção é um conjunto vazio. Isso é um resultado válido, não um erro.
C = {"Lia"}
D = {"Rui"}
print(C | D) # {'Lia', 'Rui'}
print(C & D) # set()Atenção
Para calcular união e interseção entre conjuntos, use | e &. Os operadores or e and avaliam o valor lógico dos operandos e retornam um deles; não comparam seus elementos.
Como C e D não estão vazios, C or D retorna C, e C and D retorna D — não a união nem a interseção.
Com C = {'Lia'} e D = {'Rui'}, qual alternativa responde corretamente a “quem participa dos dois grupos”?

Passo 5 de 8
Use a diferença e a diferença simétrica para identificar quem está somente em um grupo ou em exatamente um dos dois.
Para encontrar quem está em A, mas não em B, use A - B. O conjunto à esquerda é o ponto de partida: ficam apenas seus elementos que não pertencem ao conjunto à direita.
Ao inverter para B - A, a pergunta muda: quem está em B, mas não em A?
Confira os resultados pelos elementos, independentemente da ordem em que aparecem.
A = {"Ana", "Bia", "Caio"}
B = {"Bia", "Davi"}
print(A - B) # Contém Ana e Caio
print(B - A) # Contém apenas DaviDica
A operação - produz um novo conjunto. Ela não remove elementos de A nem de B.
Considere A = {"Ana", "Bia", "Caio"} e B = {"Bia", "Davi"}. Qual comparação entre A - B e B - A está correta?
Se a pergunta é quem está em exatamente um dos dois grupos, use A ^ B. A diferença simétrica inclui os exclusivos de ambos os lados e deixa de fora quem está nos dois.
Diferentemente de -, inverter os operandos de ^ não muda os elementos do resultado. Essa operação também produz um novo conjunto, sem alterar os originais.

Da esquerda para a direita: somente A, somente B e exatamente um dos dois. A região compartilhada fica fora dos três resultados.
Usando os mesmos conjuntos A e B da primeira tela:
exclusivos = A ^ B
print(exclusivos) # Contém Ana, Caio e Davi
print(B ^ A) # Contém os mesmos elementosA representa os inscritos em pintura e B, os inscritos em música. Relacione cada pergunta à expressão adequada.
Toque em um item e depois no par correspondente.

Passo 6 de 8
Use issubset para verificar a inclusão de um grupo inteiro e interprete a direção da consulta.
Um conjunto A é subconjunto de B quando todos os elementos de A também pertencem a B.
A.issubset(B) responde a essa pergunta com True ou False. A direção importa: leia como “A está contido em B?”. Basta um elemento de A faltar em B para a resposta ser False.

À esquerda, A está contido em B. À direita, Davi impede essa relação.
A = {"Ana", "Bia"}
B = {"Ana", "Bia", "Caio"}
print(A.issubset(B)) # True
print(B.issubset(A)) # False: Caio não está em AConsidere A = {2, 5} e B = {2, 3, 4}.
A chamada A.issubset(B) retorna True porque o número 2 aparece nos dois conjuntos.
Um conjunto não precisa ter menos elementos para ser subconjunto de outro. Se os dois têm os mesmos elementos, issubset retorna True nas duas direções.
Use in para consultar um elemento e issubset para verificar um grupo inteiro.
A = {"Ana", "Bia"}
B = {"Bia", "Ana"}
print("Ana" in B) # True: consulta um elemento
print(A.issubset(B)) # True: consulta todos de A
print(B.issubset(A)) # True: os elementos são os mesmosDica
Na chamada A.issubset(B), comece pelo conjunto antes do ponto: cada elemento dele precisa estar no conjunto entre parênteses.
Considere:A = {"Ana", "Bia"}B = {"Bia", "Ana"}C = {"Ana", "Bia", "Caio"}
Quais são os resultados, nesta ordem?
A.issubset(B)C.issubset(A)A.issubset(C)
Passo 7 de 8
Escolha entre lista, tupla, dicionário e conjunto considerando acesso, ordem, repetições e alterações.
Antes de escolher, pergunte: preciso acessar por posição ou chave? A ordem importa? Preciso guardar ocorrências repetidas? A estrutura deve aceitar alterações?

Escolha pela organização necessária, não apenas pelos valores que serão guardados.
Associe cada situação à coleção mais adequada.
Toque em um item e depois no par correspondente.
Um histórico recebe o nome de cada visitante conforme ele chega. A mesma pessoa pode voltar, e é necessário manter todas as visitas na ordem de chegada.
Qual coleção você escolheria? Explique por que substituir esse histórico por um conjunto não atenderia ao requisito.
Escreva pelo menos 30 caracteres (0/30).

Passo 8 de 8
Compare inscrições de duas oficinas no seu Python 3 e confira os resultados sem depender da ordem de exibição.
Você precisa comparar os participantes de fotografia e desenho, contando cada pessoa apenas uma vez em cada oficina.
No seu computador, crie um arquivo chamado oficinas.py e copie o código abaixo. Ele mantém as listas originais e cria os conjuntos para comparação.
Antes de comparar, aplique duas alterações em fotografia: Eva entrou e Caio cancelou. Neste exemplo, cada nome identifica uma pessoa diferente.
inscricoes_fotografia = ["Ana", "Bia", "Ana", "Caio"]
inscricoes_desenho = ["Bia", "Davi", "Davi", "Eva"]
fotografia = set(inscricoes_fotografia)
desenho = set(inscricoes_desenho)
fotografia.add("Eva")
fotografia.discard("Caio")
print("Fotografia:", fotografia, "Quantidade:", len(fotografia))
print("Desenho:", desenho, "Quantidade:", len(desenho))
A conversão elimina repetições no conjunto. Depois, o código aplica a entrada de Eva e o cancelamento de Caio em fotografia.
Acrescente este bloco ao final do mesmo arquivo e execute oficinas.py com seu Python 3.
Confira quem está em qualquer oficina, nas duas, somente em fotografia e em exatamente uma delas. Por fim, verifique se todos os participantes de fotografia também estão em desenho.
Compare os nomes e as quantidades: a ordem impressa dos conjuntos não faz parte do resultado esperado.
qualquer_oficina = fotografia | desenho
ambas = fotografia & desenho
somente_fotografia = fotografia - desenho
exatamente_uma = fotografia ^ desenho
fotografia_contida = fotografia.issubset(desenho)
print("Qualquer oficina:", qualquer_oficina)
print("Quantidade:", len(qualquer_oficina))
print("Nas duas:", ambas)
print("Quantidade:", len(ambas))
print("Somente fotografia:", somente_fotografia)
print("Quantidade:", len(somente_fotografia))
print("Exatamente uma:", exatamente_uma)
print("Quantidade:", len(exatamente_uma))
print("Fotografia está contida em desenho?", fotografia_contida)Relate os elementos e as quantidades dos dois grupos após as atualizações e dos quatro resultados. Informe também o resultado de issubset e identifique quem explica esse resultado.
Escreva pelo menos 60 caracteres (0/60).
Por que conjuntos são adequados para esta comparação? Se fosse necessário consultar a ordem original e quantas vezes cada nome foi inscrito, por que você precisaria das listas originais?
Escreva pelo menos 40 caracteres (0/40).
Resumo
Escolha a coleção pela informação que precisa preservar.
Parabéns! Você concluiu: Eliminar duplicatas e comparar grupos com conjuntos
Milhares de cursos online em vídeo, ebooks e áudiobooks.
Para testar seus conhecimentos no decorrer dos cursos online
Gerado diretamente na galeria de fotos do seu celular e enviado ao seu e-mail
Baixe nosso aplicativo pelo QR Code ou pelos links abaixo:.
+ de 10 milhões
de alunos
Certificado grátis e
válido em todo o Brasil
60 mil exercícios
gratuitos
4,8/5 classificação
nas lojas de apps
Cursos gratuitos em
vídeo, ebooks e audiobooks