设置与设置python

sin*_*inθ 7 python python-3.x

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

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

use*_*ica 11

你已经标记了这个Python 3,所以区别在于sets它不存在.使用set.

在Python 2中,区别在于sets不推荐使用.这是旧的,缓慢的,不那么好的版本.使用set.这在sets模块的文档中有解释,该文档会在搜索时立即显示Python sets.


Tha*_*ell 4

内置的set()基于旧的sets.Set()并且运行得更快。
两者“做”同样的事情,尽管在 Python 3 中“sets”模块不再存在。

以下是直接来自 Python 2 库的答案:
内置 set 和 freezeset 类型是根据从 set 模块吸取的经验教训设计的。主要区别是:

Set 和 ImmutableSet 被重命名为 set 和 freezeset。

- 没有与 BaseSet 等效的东西。相反,请使用 isinstance(x, (set, freezeset))。

- 对于大多数数据集,内置的哈希算法的性能明显更好(冲突更少)。

- 内置版本具有更节省空间的泡菜。

- 内置版本没有 union_update() 方法。相反,使用等效的 update() 方法。

- 内置版本没有 _repr(sorted=True) 方法。相反,请使用内置的 repr() 和 Sorted() 函数:repr(sorted(s))。

- 内置版本没有自动转换为不可变的协议。许多人发现这一功能令人困惑,社区中没有人报告发现它的真正用途。