[]
= empty list
()
= empty Tuple
{}
= empty dict
空のset
に対して同様の表記法はありますか?それともset()
と書く必要がありますか?
いいえ、空集合のリテラル構文はありません。 set()
を書く必要があります。
受け入れられた答えを拡張するためだけに:
バージョン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
ぜひ、空の集合を作るためにset()
を使ってください。
しかし、人々を感動させたい場合は、Python> = 3.5でリテラルと*
を使用して空のセットを作成できることを伝えてください( PEP 448 を参照)することによって:
>>> s = {*()} # or {*{}} or {*[]}
>>> print(s)
set()
これは基本的に{_ for _ in ()}
のより簡潔な方法ですが、しないでください。
それはあなたが比較のためにリテラルを欲しいのか、それとも代入のために欲しいのかによって異なります。
既存のセットを空にしたい場合は、特に新しいオブジェクトを作成したくない場合は.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
狂った考えに加えて:Python 3がUnicode識別子を受け付けるようにしたなら、あなたは変数ϕ = frozenset()
(ϕはU + 03D5)を宣言して代わりにそれを使うことができます。
空のセットを初期化したい場合は、以下のコードを適用してください。これは私にとってPython 3で完璧に動作します。
object = set([])
object = object.union([1,2,3,4]) #set operation.