我正在使用Python 2.7,只是想知道set()
和Set()
之间是否有任何区别(即有/无大小写)。
具体来说,Python指令https://docs.python.org/2/library/sets.html建议应该导入集并将其初始化为:
from sets import Set
x = Set()
我刚刚使用命令set()而没有导入任何内容,即:
x = set()
只是想知道这些是否相同,或者它们是否有所不同。
答案 0 :(得分:1)
正如在Python文档中所说,Set
类提供除__hash__()
之外的每个set
方法。
对于需要哈希方法的高级应用程序,ImmutableSet类添加哈希()方法,但省略了改变集合内容的方法。 Set和ImmutableSet都派生自BaseSet,这是一个抽象类,可用于确定某些东西是否为set:isinstance(obj,BaseSet)。
答案 1 :(得分:1)
我对他们一无所知 - 老实说,直到我看到你的问题,我认为他们是完全相同的。
现在检查
>>> 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'])
当然,这并未提供有关其差异的任何明确信息,但表明它们不相同:)