基于C的扩展,实现快速整数位集合。
项目描述
安装
intbitset 在 PyPI 上
pip install intbitset
我们为最常见的操作系统和常见的 64 位 CPU 架构提供预构建的 wheel 包。否则,如果您从源代码构建,则需要 C 编译器。
文档
intbitset 库提供了一个集合实现,用于存储排序的无符号整数,可以是 32 位整数(介于 0 和 2**31 - 1 或 intbitset.__maxelem__)或具有快速集合操作的无穷范围,这些操作通过在 Python C 扩展 中使用位向量实现,以提高速度并减少内存使用。
inbitset 类模拟了 Python 内置的 set 类接口,并具有一些附加的特定方法,例如其自己的快速存档和加载序列化函数。
>>> from intbitset import intbitset >>> x = intbitset([1,2,3]) >>> y = intbitset([3,4,5]) >>> x & y intbitset([3]) >>> x | y intbitset([1, 2, 3, 4, 5])
此外,intbitset 支持
intbitset 可以像序列一样被切片。
自然的最小值和最大值。因为整数始终按顺序存储,所以非空集合的第一个元素 [0] 也是 min() 整数,最后一个元素 [-1] 也是集合中的 max() 整数。
与标准库中的 set 类相比,intbitset 集合操作以及 intbitset 的交集、并集和差集操作,对于密集整数集合来说,可以比标准库中的 set 快 5000 倍。
完整的文档可在 <http://intbitset.readthedocs.io> 找到,或使用 Sphinx 构建。
pip install sphinx python setup.py build_sphinx
测试
运行测试非常简单
pip install -e .[tests] pytest
在多个 Python 版本上运行测试
pip install tox tox
开发
要使用 Cython 重新生成 C 代码
pip install cython cython intbitset/intbitset.pyx
然后提交重新生成的 C 源代码并更新 CHANGELOG.rst
许可证
版权 (C) CERN 及他人
SPDX-License-Identifier: LGPL-3.0-or-later
intbitset 是免费软件;您可以在自由软件基金会发布的 GNU 较小通用公共许可证的条款下重新分发它和/或修改它;许可证的第 3 版,或者(根据您的选择)任何更新的版本。
intbitset 的分发是希望它会很有用,但没有提供任何保证;甚至没有关于其可销售性或适用于特定目的的暗示保证。有关详细信息,请参阅 GNU 较小通用公共许可证。
您应该已收到一份 GNU 较小通用公共许可证的副本,与 intbitset 一起;如果没有,请写信给自由软件基金会,Inc.,59 Temple Place,Suite 330,波士顿,MA 02111-1307,USA。
在适用此许可证时,CERN 不放弃其作为政府间组织享有的特权和豁免权,也不受任何司法管辖。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分布
构建分布
散列值 for intbitset-3.1.0-cp312-cp312-musllinux_1_1_x86_64.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | 4083a32b66c2e72feb697b014069a4bed16116b392574f9ced006eff1b1d743c |
|
MD5 | 229337d0033d70a07f2e7284b899f10a |
|
BLAKE2b-256 | 129181890541151f4cdd86cf17dfb72ff9b1c7b2ef7eb1a4f4e9f5dc2d11c453 |
散列值 for intbitset-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | 72763c492ade2c2aea8d34f3bec11b81f9f1e9219a1925908114898ee7fe34e4 |
|
MD5 | 817e4efe178efcf1d7b1d2ad95314bd5 |
|
BLAKE2b-256 | 742cc7e4c46adfbb3c6c87c83d4f2c630060343475a62b8f831dccca72557d80 |
散列值 for intbitset-3.1.0-cp312-cp312-macosx_10_9_universal2.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | 79d945608a6abeaa20b5511624408f2c8859f9e886fbe5e20a47ed16990d91af |
|
MD5 | ed214c9f0c53ac73ed154352ac34ca44 |
|
BLAKE2b-256 | c7ff1ee747af126908232dc0c4e61a8e12883088ae806c30521509a6e73f23cd |
散列值 for intbitset-3.1.0-cp311-cp311-musllinux_1_1_x86_64.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | 8d669e3e90a89985cec95b87d066837a4aae604b9e280c59c1d8c6ac7784fb60 |
|
MD5 | f416c3f12cb53ce3ff556417dd101e26 |
|
BLAKE2b-256 | fa025f3f90b8daa430f4b520c63c321992fe365cc1ac9290066e9191f4d11c36 |
散列值 for intbitset-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | 353ea6b4c2f2c0aba4bd7b92bf6116fa82b16de9255b8b11a3d799c9cc0b640e |
|
MD5 | f1c6a291f5d9860957e5c7fbf260962c |
|
BLAKE2b-256 | 2470b1ac992230c58501d31c6d6b50f61cf2ce72eb3a6890fc5df3d7999c5b80 |
散列值 for intbitset-3.1.0-cp311-cp311-macosx_10_9_universal2.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | 618ecb4d6aef50804ec20301a8c9c5949617c17d98e1287bb57e50644f66340a |
|
MD5 | 7a7e611afb34b4342f3a5900ccf686b7 |
|
BLAKE2b-256 | f7886aa0d0b1bb9ca612f7ca0d36c8377f1caaf2b3e444efdc4a2862f89444d4 |
散列值 for intbitset-3.1.0-cp310-cp310-musllinux_1_1_x86_64.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | 7509c46a0357e2700be245bd88e30d581fc7a3bbef0d3412e4c2c4bd3baca469 |
|
MD5 | 734c904faacd90ca3bb714f0f55eccc1 |
|
BLAKE2b-256 | 73e0ca420f48695d550c1ca94bb935c4984dc16b8dac6d7eda9035b8a9a2c74e |
散列值 for intbitset-3.1.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | ef8493342bab01a9ee893fb68591d4fe33be07ceced57ee65183e061bd18de37 |
|
MD5 | 44aa6bf320fe96f18b4190f951ac3be7 |
|
BLAKE2b-256 | f388f03bdf07683b80945120bc97b755592e1d8c530f787ca6c022263641c29f |
散列值 for intbitset-3.1.0-cp310-cp310-macosx_10_9_universal2.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | 6c8780daedd455c4b05e9bf88e0280ae7fd9e62f08bc9ed8a97b49b55556ac01 |
|
MD5 | d6013e43c9f1bf7efdee40c09831f1e7 |
|
BLAKE2b-256 | a5962b2d5d6d208b8b20ea4cfdef0821a50e69a2eaf76f04d7847c9789bbd5c2 |
散列值 for intbitset-3.1.0-cp39-cp39-musllinux_1_1_x86_64.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | ea1973fb9fde78f273573c9e80be89d2c54afbab903a51d260d76427d50a83c5 |
|
MD5 | ee2a819f56f12e060a6747d85576a086 |
|
BLAKE2b-256 | 1dd13225f86775ade373b044a208f8623780be79d7c70834244853e86a7520d0 |
散列值 for intbitset-3.1.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | a358c6da657112ef045cc221ed6d214014ffa43f0b123e1390d3687d35b468d4 |
|
MD5 | 408a8233056a6a325134b308679840cc |
|
BLAKE2b-256 | 5340bb030bb66d1e719ab247401f0a32a0d6fc3df2d6fdf7d6bff027a93f17c2 |
散列值 for intbitset-3.1.0-cp39-cp39-macosx_10_9_universal2.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | df05d834f1c73dbbf99be3a11011b78d4889b4cb2df91efc16d63bd1d78fa628 |
|
MD5 | b5be5341fad3f3e0dfcc55dff07edacf |
|
BLAKE2b-256 | 55a71bfc27a21c327e3e8e465708b9059434408bd9c8d62b60d4b6ada40b31d3 |
散列值 for intbitset-3.1.0-cp38-cp38-musllinux_1_1_x86_64.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | 40b678540169e2d8f9fa7802c816677e060ec15d21d3dda7ed753f4fcc50cff4 |
|
MD5 | 8158b9470ec37dfc891498f5d06645db |
|
BLAKE2b-256 | 3eeeb4f7b951b395299db1c3bc9d4bb22a045006443b6f298a4c597cff1227ce |
散列值 for intbitset-3.1.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | 1f951688ec54599109d15138c8a9af4c0e4e70867d8917c0e8975532fd4287d1 |
|
MD5 | abab78d1edd82d1bcd2ff5d618e5795f |
|
BLAKE2b-256 | 9ca4a087e1e5c1f23e21c59e6717f8c1bae0b4c8a21c1d6db9ea0678b6b3f7dc |
散列值 for intbitset-3.1.0-cp38-cp38-macosx_10_9_universal2.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | 18c6d0c305c5ab6e763823a3784f4a0cced72ac4bfdbff4702f8b7eb31eae35a |
|
MD5 | cd7c455f4e317776531e12880591f02b |
|
BLAKE2b-256 | aa35d313c879974af393cc2e1c9e26c4cd1c9390b31e18db281b7738bb4f1ad9 |