1
resposta

[Sugestão] Faça como eu fiz: gerenciando inscrições de um workshop

"""
O sistema armazena os participantes em um dicionário, onde cada chave é o nome e o valor é um conjunto com os dados do participante.
O programa deve solicitar o nome de um participante e remover esse nome da lista de participantes registrados, caso exista.

Exemplo de entrada:
participantes = {
    "Workshop 1": {"Alice", "Bruno", "Carla", "Diego"},
    "Workshop 2": {"Fernanda", "Gustavo", "Helena"}
}

Saída esperada:
Lista atualizada de participantes:
Workshop 1: {'Alice', 'Bruno', 'Diego'}
Workshop 2: {'Fernanda', 'Gustavo', 'Helena'}
"""

participantes = {
    'Workshop 1': {'alice', 'bruno', 'carla', 'diego'},
    'Workshop 2': {'fernanda', 'gustavo', 'helena'}
}


def remover_participante(nome: str) -> bool:
    status = False
    for chave in participantes.keys():
        if nome in participantes[chave]:
            participantes[chave].discard(nome)
            status = True
    return status


if __name__ == '__main__':
    print(f'\nParticipantes registrados:')
    print(
        f'{'\n'.join(f'{chave} - {', '.join(f'{p.title()}' for p in lista)}' for chave, lista in participantes.items())}')

    print(f'\nInforme o nome do participante a ser removido:')
    resposta = input('# ').lower().strip()

    if remover_participante(resposta):
        print(f'\n"{resposta.title()}" foi removido(a) da lista de participantes.')
        print(f'\nLista atualizada de participantes:')
        print(
            f'{'\n'.join(f'{chave} - {', '.join(f'{p.title()}' for p in lista)}' for chave, lista in participantes.items())}')
    else:
        print(f'\n"{resposta.title()}" não foi encontrado na lista de participantes.')
1 resposta

Olá, José! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de dicionários para organizar workshops com Python, criou muito bem a lógica para remover participantes de forma dinâmica e ainda compreendeu a importância da verificação de existência antes de atualizar os dados.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é usar o método pop em conjunto com set.discard para tornar o código mais direto. Assim:

def remover_participante(nome: str) -> bool:
    for lista in participantes.values():
        if nome in lista:
            lista.discard(nome)
            return True
    return False

Isso faz a remoção de forma simples e evita variáveis auxiliares desnecessárias.

Sugestão de conteúdo para você mergulhar ainda mais no tema:

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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