frozenset是不可变的,其内容在被创建后不能再改变,不像set集合,可以增加删除集合中的元素。因此可以被用作字典的键或其他集合的元素。
1. 传入一个可迭代对象,生成一个新的不可变集合
>>> a = frozenset(range(10))
>>> a
frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
>>> b = frozenset('I am a Pythoner')
>>> b
frozenset({'y', 'I', ' ', 'r', 't', 'm', 'h', 'o', 'a', 'e', 'n', 'P'})2. 不传入参数时,生成的空的不可变集合。
>>> c = frozenset() >>> c frozenset()
集合的元素必须为hashable。要表示由集合对象构成的集合,所有的内层集合必须为frozenset对象。
>>> f = frozenset()
>>> f
frozenset([])
>>> f = frozenset('asdf')
>>> f
frozenset(['a', 's', 'd', 'f'])
>>> f = frozenset([1,2,3,4])
>>> f
frozenset([1, 2, 3, 4])
>>> f = frozenset((1,2,3,4))
>>> f
frozenset([1, 2, 3, 4])
>>> f = frozenset({1:2, 'a':2, 'c':3})
>>> f
frozenset(['a', 1, 'c'])如果试图改变不可变集合中的元素,就会报AttributeError错误。
不可变集合,除了内容不能更改外,其他功能及操作跟可变集合set一样。