Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

set para duplicado deveria apresentar erro?

Nessa introdução do set diz que não aceita valores duplicados, porém isso não deveria gerar uma mensagem de "erro"? Um exemplo rápido...

>>> lista = {1,2,3,4}
>>> lista
{1, 2, 3, 4}
>>> lista.add(5)
>>> lista
{1, 2, 3, 4, 5}
>>> lista.add(4)
>>> lista
{1, 2, 3, 4, 5}

Claro que quando tentei adicionar o 4, ele não foi inserido, porém quando comandei o lista.add(4), o console aceitou o comando. Não deveria apresentar algum "erro"?

1 resposta
solução!

Olá, Girreze.

É, o tipo set do python não levanta nenhum erro quando se tenta adicionar valores duplicados. Não vi nenhuma menção a isso na documentação nem na PEP 218.

Mas isso é uma escolha de projeto, já que a definição matemática de conjuntos permite isso. Adicionar elementos novos a conjuntos não é "não permitido", a única coisa que acontece é que eles não aparecem de forma dublicada.

Mas se você quiser fazer isso, pode criar uma função do tipo:

def add(conjunto, elemento):
    if elemento in conjunto:
        print("Adição não permitida, elemento duplicado.")
    else:
        conjunto.add(elemento)

# Criação do conjunto
meu_conjunto = {1,2,3}

# Adicionar elemento (sem erro)
add(meu_conjunto, 5)

# Adicionar elemento (com erro)
add(meu_conjunto, 2)

Espero ter ajudado.