簡體   English   中英

Set和set之間有區別嗎?

[英]Is there a difference between Set and set?

我正在使用python 2.7,並且只是想知道set()Set()之間是否有任何區別(即,有無大寫)。

具體來說,Python指令https://docs.python.org/2/library/sets.html建議將Set導入並初始化為:

from sets import Set
x = Set()

我剛使用過set()命令,但未導入任何內容,即:

x = set()

只是想知道它們是否相同,或者是否有所不同。

就像在Python文檔中所說的那樣, Set類提供了除__hash__()之外的每個set方法。

對於需要哈希方法的高級應用程序,ImmutableSet類添加了hash ()方法,但是省略了會更改集合內容的方法。 Set和ImmutableSet都從BaseSet派生,BaseSet是一個抽象類,可用於確定某物是否為集合:isinstance(obj,BaseSet)。

我對它們沒有任何深入的了解-老實說,直到我看到你的問題,我認為它們是相同的。

現在檢查

>>> from sets import Set
>>> x = Set()
>>> y = set()
>>> len(dir(y))
54
>>> len(dir(x))
63

並意識到他們有一些差異

>>> Y = set(dir(y))
>>> X = set(dir(x))
>>> X-Y
set(['_compute_hash', '__module__', '_update', '_binary_sanity_check', '__setstate__', '__deepcopy__', '_repr', '__as_immutable__', 'union_update', '__slots__', '__copy__', '__as_temporarily_immutable__', '_data', '__getstate__'])    
>>> Y-X
set(['__rand__', '__ror__', '__rsub__', '__rxor__', 'isdisjoint'])

當然,這並不能給出有關它們之間差異的任何清晰信息,但是表明它們並不相同:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM