预定义域上的有序子集
bitsets的Python项目详细描述
这个包提供了一个内存效率高的纯pythonimmutable有序集 数据类型用于处理来自预定池的大量子集 对象的。
给定可散列对象的名称和元组,bitset()-函数返回 用于从对象池创建有序子集的自定义整数子类。 每个实例都是一个python整数,其中存在/不存在nth池 item是它的nth位被设置/取消设置(也称为位字符串,二次幂,秩 在{EM1} $ CyxICVICE< EEM>顺序)。
只是一个正则(任意精度)整数 在唯一对象集合和位模式之间转换的方法 允许以更自然的方式执行某些任务,例如排序 集合的词典编纂,或列举可能的组合 有秩序的时尚
链接
快速启动
为从对象池中获取的集创建类:
>>>frombitsetsimportbitset>>>PYTHONS=('Chapman','Cleese','Gilliam','Idle','Jones','Palin')>>>Pythons=bitset('Pythons',PYTHONS)
访问其最大和最小实例。在中检索实例成员 定义顺序:
>>>Pythons.supremumPythons(['Chapman','Cleese','Gilliam','Idle','Jones','Palin'])>>>Pythons.infimumPythons()>>>Pythons(['Idle','Gilliam','Idle','Idle']).members()('Gilliam','Idle')
转换为位字符串、布尔序列和int:
>>>Pythons(['Chapman','Gilliam']).bits()'101000'>>>Pythons.frombits('101000')Pythons(['Chapman','Gilliam'])>>>Pythons(['Chapman','Gilliam']).bools()(True,False,True,False,False,False)>>>Pythons.frombools([True,None,1,False,0])Pythons(['Chapman','Gilliam'])>>>int(Pythons(['Chapman','Gilliam']))5>>>Pythons.fromint(5)Pythons(['Chapman','Gilliam'])
设置操作和比较方法(cf.内置frozenset):
>>>Pythons(['Jones','Cleese','Idle']).intersection(Pythons(['Idle']))Pythons(['Idle'])>>>Pythons(['Idle']).union(Pythons(['Jones','Cleese']))Pythons(['Cleese','Idle','Jones'])>>>Pythons.supremum.difference(Pythons(['Chapman','Cleese']))Pythons(['Gilliam','Idle','Jones','Palin'])>>>Pythons(['Palin','Jones']).symmetric_difference(Pythons(['Cleese','Jones']))Pythons(['Cleese','Palin'])>>>Pythons(['Gilliam']).issubset(Pythons(['Cleese','Palin']))False>>>Pythons(['Cleese','Palin']).issuperset(Pythons())True
进一步阅读
另请参见
许可证
位集分布在MIT license下。