[]
=空list
()
=空tuple
{}
=空dict
空set
是否有相似的表示法?
或者我必须写set()
?
答案 0 :(得分:424)
不,空集没有文字语法。你必须写set()
。
答案 1 :(得分:40)
只是为了扩展接受的答案:
从版本2.7
和3.1
,python以set
的形式获得{}
文字{1,2,3}
,但{}
本身仍然用于空单。
Python 2.7(第一行在Python< 2.7中无效)
>>> {1,2,3}.__class__
<type 'set'>
>>> {}.__class__
<type 'dict'>
Python 3.x
>>> {1,4,5}.__class__
<class 'set'>
>>> {}.__class__
<type 'dict'>
更多信息:https://docs.python.org/3/whatsnew/2.7.html#other-language-changes
答案 2 :(得分:31)
无论如何,请使用 set()
创建一个空集。
但是,如果你想给人留下深刻印象,请告诉他们你可以使用文字和*
使用Python&gt; = 3.5(see PEP 448)创建一个空集:
>>> s = {*()} # or {*{}} or {*[]}
>>> print(s)
set()
这基本上是一种更加简洁的{_ for _ in ()}
方式,但是,不要这样做。
答案 3 :(得分:4)
这取决于您是希望文字进行比较还是分配。
如果要将现有设置设为空,则可以使用.clear()
metod,尤其是在您想要避免创建新对象时。如果要进行比较,请使用set()
或检查长度是否为0。
示例:
#create a new set
a=set([1,2,3,'foo','bar'])
#or, using a literal:
a={1,2,3,'foo','bar'}
#create an empty set
a=set()
#or, use the clear method
a.clear()
#comparison to a new blank set
if a==set():
#do something
#length-checking comparison
if len(a)==0:
#do something
答案 4 :(得分:2)
添加疯狂的想法:使用Python 3接受unicode标识符,你可以声明一个变量ϕ = frozenset()
(φ是U + 03D5)并改为使用它。
答案 5 :(得分:1)
是的。适用于非空dict / set的相同表示法适用于空dict / set。
请注意非空dict
和set
文字之间的区别:
{1: 'a', 2: 'b', 3: 'c'}
-内部的许多键值对组成了dict
{'aaa', 'bbb', 'ccc'}
-内部值的元组使set
所以:
{}
==零个键值对==空dict
{*()}
==空的元组==空的set
事实上,您可以做到,并不意味着您应该这样做。除非您有很强的理由,否则最好显式构造一个空集,例如:
a = set()
NB :正如在评论中注意到的那样,{()}
不是一个空集合。这是一个有1个元素的集合:空元组。
答案 6 :(得分:-2)
有几种方法可以在Python中创建空Set:
因此,这是创建空Set的2种方法。