Use curly braces to initialize a Set in Python
I'm learning python, and I have a novice question about initializing sets. Through testing, I've discovered that a set can be initialized like so:
my_set = {'foo', 'bar', 'baz'}
Are there any disadvantages of doing it this way, as opposed to the standard way of:
my_set = set(['foo', 'bar', 'baz'])
or is it just a question of style?
Solution 1:
There are two obvious issues with the set literal syntax:
my_set = {'foo', 'bar', 'baz'}
It's not available before Python 2.7
There's no way to express an empty set using that syntax (using
{}
creates an empty dict)
Those may or may not be important to you.
The section of the docs outlining this syntax is here.
Solution 2:
Compare also the difference between {}
and set()
with a single word argument.
>>> a = set('aardvark')
>>> a
{'d', 'v', 'a', 'r', 'k'}
>>> b = {'aardvark'}
>>> b
{'aardvark'}
but both a
and b
are sets of course.