预定义域上的有序子集

bitsets的Python项目详细描述


Latest PyPI VersionLicenseSupported Python VersionsFormatReadthedocs

TravisCodecov

这个包提供了一个内存效率高的纯pythonimmutable有序集 数据类型用于处理来自预定池的大量子集 对象的。

给定可散列对象的名称和元组,bitset()-函数返回 用于从对象池创建有序子集的自定义整数子类。 每个实例都是一个python整数,其中存在/不存在nth池 item是它的nth位被设置/取消设置(也称为位字符串,二次幂,秩 在{EM1} $ CyxICVICE< EEM>顺序)。

只是一个正则(任意精度)整数 在唯一对象集合和位模式之间转换的方法 允许以更自然的方式执行某些任务,例如排序 集合的词典编纂,或列举可能的组合 有秩序的时尚

安装

这个包在Python2.7和3.5+下运行,没有必需的依赖项, 使用pip安装:

$ pip install bitsets

快速启动

为从对象池中获取的集创建类:

>>>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

另请参见

  • bitarray–以c扩展实现的高效布尔数组
  • bitstring–基于bytearray
  • 的纯python位字符串
  • BitVector–基于无符号shortarray
  • 的纯python位数组
  • Bitsets–sage中快速位集的cython接口
  • bitfield–cython正整数集
  • intbitset–整数位集作为c扩展名
  • gmpy2–快速任意精度整数运算

许可证

位集分布在MIT license下。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在Hibernate中使用条件连接两个表?   Stripes框架中的java对话范围   我的内存够吗?   Jenkins Java&Selenium如何处理2个随机异常?   javascript Java websockets跨端点共享会话   java是一种测试驱动的开发方法吗?   Java客户端中的Soap连接超时,但在SOAPUI中未超时   Java LibGDX:TileMap未在顶部和右侧渲染   linux Java::process builder:bash脚本:返回的文件名正确,但fileReader引发FileNotFoundException   java Selenium单击自动随机生成的DIV/ID/LINK   比较两个忽略元素和属性顺序的XMl文件   Java无限循环/调用   java如何防止操作修改cookie?   列出未保存的Java webpanel命令   在Java中,如何解决XXXX不能作为变量求解的错误?   Java概念后期版本格式化部分