[]
=空list
()
=空tuple
{}
=空dict
空set
是否有类似的符号? 还是我必须写set()
?
#1楼
这取决于您是否要使用文字进行比较或赋值。
如果要使现有集合为空,则可以使用.clear()
方法,尤其是要避免创建新对象时。 如果要进行比较,请使用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
#2楼
只是为了扩展公认的答案:
从2.7
版和3.1
版开始,python已以用法{1,2,3}
形式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
#3楼
更加疯狂的想法:在Python 3接受unicode标识符的情况下,您可以声明一个变量ϕ = frozenset()
(ϕ为U + 03D5),然后改用它。
#4楼
一定要使用 set()
创建一个空集。
但是,如果您想打动别人,请告诉他们您可以使用文字和*
通过Python> = 3.5( 请参阅PEP 448 )创建一个空集,方法是:
>>> s = {*()} # or {*{}} or {*[]}
>>> print(s)
set()
这基本上是一种更简洁的方法, {_ for _ in ()}
,但是不要这样做。
#5楼
是。 适用于非空dict / set的相同表示法适用于空dict / set。
注意非空dict
和set
文字之间的区别:
{1: 'a', 2: 'b', 3: 'c'}
-数字键-值对内部使一个dict
{'aaa', 'bbb', 'ccc'}
-内部的值元组组成一个set
所以:
{}
==零个键值对==空dict
{*()}
==空元组==空set
但是事实是您可以做到,但这并不意味着您应该这样做。 除非您有很强的理由,否则最好显式构造一个空集,例如:
a = set()
注意 :正如评论中注意到的那样, {()}
不是空集。 这是一个包含1个元素的集合:空元组。
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3162392