空集文字?

问题描述 投票:384回答:5

[] =空list

() =空tuple

{} =空dict

set有类似的符号吗?或者我必须写set()

python set literals
5个回答
426
投票

不,空集没有文字语法。你必须写set()


40
投票

只是为了扩展接受的答案:

从版本2.73.1 python得到set文字{}使用{1,2,3}形式,但{}本身仍然用于空dict。

Python 2.7(第一行在Python <2.7中无效)

>>> {1,2,3}.__class__
<type 'set'>
>>> {}.__class__
<type 'dict'>

Python等

>>> {1,4,5}.__class__
<class 'set'>
>>> {}.__class__
<type 'dict'>

更多这里:https://docs.python.org/3/whatsnew/2.7.html#other-language-changes


32
投票

无论如何,请使用set()创建一个空集。

但是,如果你想给人留下深刻印象,告诉他们你可以使用文字和*用Python> = 3.5(see PEP 448)创建一个空集:

>>> s = {*()}  # or {*{}} or {*[]}
>>> print(s)
set()

这基本上是一种更加浓缩的做{_ for _ in ()}的方式,但是,不要这样做。


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

2
投票

添加疯狂的想法:使用Python 3接受unicode标识符,您可以声明变量ϕ = frozenset()(φ是U + 03D5)并使用它代替。

© www.soinside.com 2019 - 2024. All rights reserved.