设置与设置python

时间:2015-08-20 01:40:46

标签: python python-3.x

set("a")sets.Set("a")之间有什么区别?他们的类型不同,但他们似乎做同样的事情。

我在网上找不到任何关于它的资源,但我已经看过两个例子中都使用过。

4 个答案:

答案 0 :(得分:11)

您已标记此Python 3,因此区别在于sets不存在。使用set

在Python 2中,不同之处在于不推荐使用sets。这是旧的,缓慢的,不那么好的版本。使用setdocumentation for the sets module中对此进行了解释,该搜索会在搜索Python sets时立即显示。

答案 1 :(得分:4)

内置的set()基于旧的sets.Set()并且运行得更快。 这两个'做'都是一样的,但在Python 3中''sets'模块不再存在。

以下是直接来自Python 2 Library的答案:
内置集和冻结集类型是根据集合模块的经验教训设计的。关键的区别是:

将Set和ImmutableSet重命名为set和frozenset。   
  
- 没有与BaseSet等效的东西。相反,使用isinstance(x,(set,frozenset))。
  
- 对于大多数数据集,内置函数的哈希算法表现得更好(更少的冲突)。
 
- 内置版本具有更多节省空间的泡菜。
  
- 内置版本没有union_update()方法。而是使用等效的update()方法。
  
- 内置版本没有_repr(sorted = True)方法。相反,使用内置的repr()和sorted()函数:repr(sorted(s))。
  
- 内置版本没有自动转换为immutable的协议。许多人发现此功能令人困惑,社区中没有人报告发现了它的实际用途。

答案 2 :(得分:0)

Set现已内置,无需导入'设置即可使用。模块明确。

参考:

Python - can't import Set from sets ("no module named sets")

答案 3 :(得分:0)

没有太大区别,您应该使用内置<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> </script> <ul> <li class="main"><span class="arrow-up">span</span> <ul class="sub"> <li>Item</li> <li>Item</li> <li>Item</li> </ul> </li> <li class="main"><span class="arrow-up">span</span> <ul class="sub"> <li>Item</li> <li>Item</li> <li>Item</li> </ul> </li> </ul>set,而不是frozenset模块。

集合模块documentation itself says -

  

从2.6版开始不推荐使用:内置的set / frozenset类型替换了这个模块。

Python 3.x中没有sets模块,只有Python 2。