我偶然发现了一篇博客文章,详细介绍了如何在Python中实现powerset函数。因此,我尝试用自己的方式进行操作,并发现Python显然无法拥有一组集合,因为set无法哈希。这很烦人,因为功率集的定义是它是一组集合,而我想使用实际的集合操作来实现它。
>>> set([ set() ]) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'set'
Python集不可散列是否有充分的理由?
通常,在Python中只有不可变的对象才是可哈希的。的不可变的变体set()- frozenset()-是哈希的。
set()
frozenset()