python - 为什么 Python 集合不可散列?

标签 python hash set

我偶然发现了一篇博客文章,详细介绍了如何在 Python 中实现 powerset 函数。所以我开始尝试自己的方法,发现 Python 显然不能有一组集合,因为集合是不可散列的。这很烦人,因为幂集的定义是它是一组集合,而我想使用实际的集合操作来实现它。

>>> set([ set() ])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'set'

Python 集合不可散列是否有充分的理由?

最佳答案

通常,在 Python 中只有不可变对象(immutable对象)是可散列的。 set() 的不可变变体——frozenset()——是可散列的。

关于python - 为什么 Python 集合不可散列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6310867/

相关文章:

python - 将 Cloudinary 图像上传链接到 Django 模型字段

python - 如何在 Mac OS X 上安装 Tix?

ruby - hash 已经做成字符串的怎么转成hash?

R:data.table 比较行集

java - java中的边框布局

c++ - 为什么 std::set 遍历所有元素的速度较慢?

python - 读取 CSV 文件并创建字典?

javascript - 在 URL 前缀下将 React 应用程序添加到 Flask

security - Bcrypt 用于密码散列,因为它很慢?

hash - 为什么Hash函数除法只用素数