存储分开的散列值和不可分解值的可变集
hybridset的Python项目详细描述
混合动力组
HybridSet
是一个MutableSet
,它存储可散列值和不可散列值。
它完全兼容内置的set
和frozenset
>>>fromhybridsetimportHybridSet>>>hs=HybridSet([3,'thing',[True],{3,4},{1:'one',2:'two'}])>>>s={3,4,5}>>>s|hsHybridSet(hashables={3,4,5,'thing'},unhashables=[[Ture],{3,4},{1:'one',2:'two'}])>>>s&hsHybridSet(hashables={3})
了解问题
不要将HybridSet
实例传递给内建的显式方法,它可能会导致TypeError
因为HybridSet
中存在不可更改的值。
>>>hs=HybridSet([[6],[7]])>>>s.union(hs)Traceback(mostrecentcalllast):...TypeError:unhashabletype:'list'>>>s.isdisjoint(hs)Traceback(mostrecentcalllast):...TypeError:unhashabletype:'list'
始终使用运算符。
对于isdisjoint()
,测试交叉点的空性:
>>>ifnots&hs:...print('disjoint')...else:...print('not disjoint')disjoint