我们在Python中知道,可以通过写出它的所有元素来定义一个集合:
a_set={1,"xyz"}
Run Code Online (Sandbox Code Playgroud)
Python的书籍都说集合的元素可以是任何数据类型.所以我们应该能够写出一个包含集合的集合.我试着把它写成:
a_set={1,{"xyz"}}
Run Code Online (Sandbox Code Playgroud)
但IDLE报告了一个错误:
Traceback (most recent call last):
File "<pyshell#58>", line 1, in <module>
a_set={1,{"xyz"}}
TypeError: unhashable type: 'set'
Run Code Online (Sandbox Code Playgroud)
我想这可能是因为Python试图将其理解为字典.那么,如何写出一个包含Python集合的集合?
Jon*_*nts 15
最内部的集合需要是冷冻集类型,它是集合的不可变版本.
>>> a_set = {1, frozenset(['xyz'])}
>>> a_set
set([1, frozenset(['xyz'])])
Run Code Online (Sandbox Code Playgroud)
来自文档:
class frozenset([iterable])
返回一个新的set或frozenset对象,其元素取自iterable.集合的元素必须是可以清除的.要表示集合集,内部集合必须是冻结集合对象.如果未指定iterable,则返回新的空集.