预定义域上的有序子集

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第三方库


热门话题
junit无法从另一个java类访问方法   java Android打开对话框   使用JUnit的java测试控制台输出   java使用信号量从2个线程打印可选输出   在Java中,如何计算字符串开头出现的字符数   多线程单元测试Java多线程socket服务器   java如何使用aspectj创建jar?日食   java出现意外错误(类型=内部服务器错误,状态=500)。org/eclipse/jdt/internal/compiler/env/INameEnvironment   java重用Tomcat配置在节点之间发送消息   swing如何在Java中的表中的列中添加复选框   java为什么这个程序显示错误?   java在Android中将编码的base64图像转换为文件对象   带H2的java Hibernate不存储数据   mysql建议:使用JFrame的Java GUI   JavaAntlr没有为Scala语法提供正确的输出标记   数学Java把负数变成1,把正数变成1   java如何将网页中的小程序包含在不同的目录中?