Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Faça como eu fiz: comparando conjunto de números

equipe_a = {"planejar reunião", "revisar documento", "testar sistema"} 
equipe_b = {"testar sistema", "implementar funcionalidade", "corrigir bug"}

uniao = equipe_a.union(equipe_b)
remover_tarefa = input('Qual tarefa você deseja remover? ')

tarefas_atualizadas = equipe_a.symmetric_difference(equipe_b)

print(f'Tarefas finais: {tarefas_atualizadas}')
1 resposta

Oi, Evandro. Tudo bem com você?

Seu código apresenta um bom início ao usar o método union para juntar as tarefas e ao capturar a entrada do usuário para a remoção desejada. Contudo, há uma inconsistência lógica na forma como a exclusão foi implementada no trecho final. O método symmetric_difference seleciona apenas os elementos que não são comuns a ambos os conjuntos originais, o que descarta tarefas compartilhadas e ignora a string digitada no comando input. Para corrigir isso e realizar a remoção real do item escolhido dentro do conjunto unificado, o correto é aplicar a função remove diretamente sobre o resultado da união das equipes.

Como exemplo para essa correção, após realizar o armazenamento da junção dos grupos com o método union, você deve executar a remoção do elemento desejado digitando uniao.remove(remover_tarefa) em uma linha separada. Dessa forma, a variável que guarda a união será modificada diretamente e estará pronta para exibição sem perder as tarefas repetidas originais que não foram escolhidas para exclusão.

Como você poderia adaptar essa lógica para usar o método discard no lugar de remove caso o usuário digite uma tarefa inexistente?

Parabéns pelo empenho ao desenvolver a atividade e por compartilhar sua dúvida, o fórum está sempre à disposição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!