在Python中使用大括号初始化集合
我正在学习python,我有一个关于初始化集合的新手问题。通过测试,我发现集合可以这样初始化:在Python中使用大括号初始化集合,python,python-2.7,set,Python,Python 2.7,Set,我正在学习python,我有一个关于初始化集合的新手问题。通过测试,我发现集合可以这样初始化: my_set = {'foo', 'bar', 'baz'} 与以下标准方式相比,这种方式是否有任何缺点: my_set = set(['foo', 'bar', 'baz']) 或者这只是一个风格问题?set-literal语法有两个明显的问题: my_set = {'foo', 'bar', 'baz'} 它在Python 2.7之前不可用 使用该语法无法表示空集(使用{}创建空dict)
my_set = {'foo', 'bar', 'baz'}
与以下标准方式相比,这种方式是否有任何缺点:
my_set = set(['foo', 'bar', 'baz'])
或者这只是一个风格问题?set-literal语法有两个明显的问题:
my_set = {'foo', 'bar', 'baz'}
{}
创建空dict)>>> 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'>
用一个单词参数比较
{}
和set()
之间的差异
>>> a = set('aardvark')
>>> a
{'d', 'v', 'a', 'r', 'k'}
>>> b = {'aardvark'}
>>> b
{'aardvark'}
但是
a
和b
当然都是集合。您需要执行empty\u set=set()
来初始化空集合{}
是一个空的dict
文档确实提到了它,只是没有提到。注意,这是一个不推荐使用的模块的文档,真正的集合现在是内置的。它在“Python2.7中的新功能”文档中,语言参考简要描述了它:@delnan我使用Python2.7,所以我不想查看Python3文档。我发布的链接是针对2.7的,但奇怪的是它没有提到这一点。我编辑了我的评论,2.7文档也提到了这一点。你发布的链接已经过时,是过去的遗物,是错误的,不推荐使用。忘记它的存在,用它自己告诉你要用的东西来代替它:并且@delnan感谢你帮助我。我编辑了这个问题,这样我就不再说没有相关的文档了(尽管网上很少有提到这个问题的例子)。对于过路人:Pycharm警告在可以使用文本时不要使用函数调用-可能有性能原因-所以在新代码中更喜欢使用set literal方式这就是为什么我喜欢提醒自己set构造函数为set([])
,而不仅仅是set()
set()
始终使用单个参数。单个iterable。@GeorgeKetterborough使用单个或无参数,后者创建一个空集。
>>> a = set('aardvark')
>>> a
{'d', 'v', 'a', 'r', 'k'}
>>> b = {'aardvark'}
>>> b
{'aardvark'}