使用大括号初始化设置
我正在学习python,我有一个关于初始化集合的新手问题。 通过testing,我发现一个集合可以像这样初始化:
my_set = {'foo', 'bar', 'baz'} 这样做有什么缺点,而不是以下的标准方式:
 my_set = set(['foo', 'bar', 'baz']) 
还是只是一个风格的问题?
设置字面语法有两个明显的问题:
 my_set = {'foo', 'bar', 'baz'} 
- 
它在Python 2.7之前是不可用的 
- 
没有办法使用该语法表示空集(使用 {}创build一个空字典)
这些对你来说可能是重要的,也可能不重要。
概述这种语法的文档部分在这里 。
 用单个单词参数比较{}和set()之间的区别。 
 >>> a = set('aardvark') >>> a {'d', 'v', 'a', 'r', 'k'} >>> b = {'aardvark'} >>> b {'aardvark'} 
 但是a和b都是套。 
从Python 3文档 ( Python 2.7相同 ):
大括号或set()函数可以用来创build集合。 注意:要创build一个空集,必须使用set(),而不是{}; 后者创build一个空字典,我们将在下一节讨论一个数据结构。
在python 2.7中:
 >>> my_set = {'foo', 'bar', 'baz', 'baz', 'foo'} >>> my_set set(['bar', 'foo', 'baz']) 
 请注意{}也被用于map / dict : 
 >>> m = {'a':2,3:'d'} >>> m[3] 'd' >>> m={} >>> type(m) <type 'dict'> 
人们可以使用集合理解:
 >>> a = {x for x in """didn't know about {} and sets """ if x not in 'set' } >>> a set(['a', ' ', 'b', 'd', "'", 'i', 'k', 'o', 'n', 'u', 'w', '{', '}'])