我正在学习python,我有一个关于初始化集合的新手问题。通过测试,我发现一个集合可以这样初始化:
my_set = {'foo', 'bar', 'baz'}
与以下标准方式相比,这样做是否有任何缺点:
my_set = set(['foo', 'bar', 'baz'])
还是只是风格问题?
我正在学习python,我有一个关于初始化集合的新手问题。通过测试,我发现一个集合可以这样初始化:
my_set = {'foo', 'bar', 'baz'}
与以下标准方式相比,这样做是否有任何缺点:
my_set = set(['foo', 'bar', 'baz'])
还是只是风格问题?
设置字面量语法有两个明显的问题:
my_set = {'foo', 'bar', 'baz'}
它在 Python 2.7 之前不可用
没有办法使用该语法来表达一个空集(使用{}
创建一个空字典)
这些对你来说可能重要也可能不重要。
概述此语法的文档部分在此处。
还比较单个单词参数之间{}
的差异。set()
>>> a = set('aardvark')
>>> a
{'d', 'v', 'a', 'r', 'k'}
>>> b = {'aardvark'}
>>> b
{'aardvark'}
但两者a
当然b
都是套。
来自Python 3 文档(同样适用于 python 2.7):
花括号或 set() 函数可用于创建集合。注意:要创建一个空集,您必须使用 set(),而不是 {};后者创建一个空字典,这是我们在下一节中讨论的数据结构。
在 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', '{', '}'])
您需要 empty_set = set()
初始化一个空集。{}
是一个空的dict
。