跳转到主要内容

预定义域上的有序子集

项目描述

Latest PyPI Version License Supported Python Versions Wheel format

Build Codecov Readthedocs stable Readthedocs latest

此包提供了一个内存高效的纯Python 不可变有序集合数据类型,用于处理来自预定义对象池的大量子集。

给定一个名称和一个可哈希对象的元组,bitset()-函数返回一个自定义整数子类,用于从对象池创建有序子集。每个实例都是一个Python整数,其中第nth个池项的存在/不存在由其第nth位被设置/清除表示(即位字符串、2的幂、在colexicographical顺序中的排名)。

仅仅是一个常规(任意精度)整数,并且提供了一些方便的方法来在唯一对象集合和位模式之间进行转换,这使得某些任务可以以更自然的方式进行,例如按字典顺序对集合进行排序,或者以有序的方式枚举可能的组合。

安装

此包在Python 3.7+下运行,没有必需的依赖项,使用pip进行安装

$ pip install bitsets

快速入门

为从你的对象池中提取的集合创建一个类

>>> from bitsets import bitset

>>> PYTHONS = ('Chapman', 'Cleese', 'Gilliam', 'Idle', 'Jones', 'Palin')

>>> Pythons = bitset('Pythons', PYTHONS)

访问其最大和最小实例。按定义顺序检索实例成员

>>> Pythons.supremum
Pythons(['Chapman', 'Cleese', 'Gilliam', 'Idle', 'Jones', 'Palin'])

>>> Pythons.infimum
Pythons()

>>> 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'])

集合操作和比较方法(参考内置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 – 基于无符号短array的纯Python位数组

  • Bitsets – Sage中快速位集的Cython接口

  • bitfield – Cython正整数集

  • intbitset – 作为C扩展的整数位集

  • gmpy2 – 快速任意精度整数算术

许可证

Bitsets遵循MIT许可

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解更多关于安装软件包的信息。

源分布

bitsets-0.8.4.zip (119.5 kB 查看哈希值)

上传于

构建版本

bitsets-0.8.4-py3-none-any.whl (13.6 kB 查看哈希值)

上传于 Python 3

由以下支持