Estou aprendendo python e tenho uma pergunta novata sobre a inicialização de conjuntos. Por meio de testes, descobri que um conjunto pode ser inicializado assim:
my_set = {'foo', 'bar', 'baz'}
Há alguma desvantagem em fazer isso dessa maneira, em oposição à maneira padrão de:
my_set = set(['foo', 'bar', 'baz'])
ou é apenas uma questão de estilo?
python
python-2.7
set
fvrghl
fonte
fonte
Respostas:
Existem dois problemas óbvios com a sintaxe literal definida:
Não está disponível antes do Python 2.7
Não há como expressar um conjunto vazio usando essa sintaxe (usando
{}
cria um dicionário vazio)Isso pode ou não ser importante para você.
A seção da documentação que descreve essa sintaxe está aqui .
fonte
Compare também a diferença entre
{}
eset()
com um argumento de uma única palavra.mas ambos
a
eb
são conjuntos, é claro.fonte
set([])
vez de apenasset()
.set()
sempre use um único argumento. Um único iterável.Da documentação do Python 3 ( o mesmo vale para o python 2.7 ):
em python 2.7:
Esteja ciente de que
{}
também é usado paramap
/dict
:Também é possível usar uma sintaxe abrangente para inicializar conjuntos:
fonte
Você precisa fazer
empty_set = set()
para inicializar um conjunto vazio.{}
é um dicionário vazio.fonte