Olá, João!
Mais uma vez, parabéns pela iniciativa de ir além do enunciado!
Achei excelente que você criou uma interface para o usuário digitar as tarefas dinamicamente (usando input e split), em vez de deixar os valores fixos no código. O uso de List Comprehension ([t.strip() for t in ...]) para limpar os espaços também foi uma sacada muito profissional!
Tenho apenas uma observação importante sobre semântica (o significado do código) para te ajudar a manter a lógica clara:
**Nome da variável e o método .union()**
Você criou a variável tarefas_iguais para receber o resultado de equipe_a.union(equipe_b).
- O que acontece: O método
.union() junta tudo o que está nos dois conjuntos (A + B). - O nome: Chamar de
tarefas_iguais dá a entender que você pegou apenas o que as duas equipes têm em comum (interseção), mas na verdade você pegou a lista completa consolidada. - Sugestão: Mudar o nome para
tarefas_consolidadas, todas_tarefas ou lista_unificada. Isso evita confusão numa leitura futura do código.
O código com esse pequeno ajuste de nome para ficar 100% coerente:
equipe_a = set()
equipe_b = set()
# ... (seus loops de entrada estão ótimos!) ...
# Ajuste no nome da variável para refletir a União (tudo junto)
tarefas_consolidadas = equipe_a.union(equipe_b)
while True:
print(f"\nTarefas atuais: {tarefas_consolidadas}") # Adicionei uma quebra de linha para visualizar melhor
remover_tarefa = input('Digite a tarefa que deseja remover (ou "sair"): ').lower().strip()
if remover_tarefa == 'sair':
break
if remover_tarefa in tarefas_consolidadas:
tarefas_consolidadas.remove(remover_tarefa)
print(f"'{remover_tarefa}' removida com sucesso.")
else:
print("Essa tarefa não está na lista.")
De resto, a lógica do while, do .update() e do .remove() está perfeita. Continue assim, explorando novas formas de resolver os problemas!
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!