一个用于组合数学的Python包
项目描述
Combi是一个用于组合数学的Python包。
Combi允许您将排列和组合的空间探索为Python序列,而不必预先生成所有的排列和组合。它允许您对这些空间指定许多特殊条件。它还提供了一些可能在组合数学编程中很有用的类。
Combi文档:https://combi.readthedocs.org/en/stable/
Combi在GitHub上:https://github.com/cool-RR/combi
Combi在PyPI上:https://pypi.python.org/pypi/combi
变更日志:https://combi.readthedocs.org/en/stable/changelog.html
基本用法
使用 PermSpace 创建排列空间
>>> from combi import *
>>> perm_space = PermSpace('meow')
它表现得像一个序列
>>> len(perm_space)
24
>>> perm_space[7]
<Perm: ('e', 'm', 'w', 'o')>
>>> perm_space.index('mowe')
3
但是排列是在需要时创建的,而不是预先创建。
使用 CombSpace 创建组合空间,其中顺序不重要
>>> comb_space = CombSpace(('vanilla', 'chocolate', 'strawberry'), 2)
>>> comb_space
<CombSpace: ('vanilla', 'chocolate', 'strawberry'), n_elements=2>
>>> comb_space[2]
<Comb, n_elements=2: ('chocolate', 'strawberry')>
>>> len(comb_space)
3
特性
PermSpace 允许您将排列空间探索为Python序列。
CombSpace 允许您像探索 Python 序列一样探索组合空间。
ProductSpace 类似于 Python 的 itertools.product,但它是一个允许索引访问的序列。
ChainSpace 类似于 Python 的 itertools.chain,但它是一个允许索引访问的序列。
SelectionSpace 是一个包含序列中所有选择的集合,包括所有可能的长度。
Bag 类类似于 Python 的 collections.Counter,但它提供了更多功能,如更多 袋之间的算术运算,袋之间的比较 等。(它之所以能这样做,是因为与 Python 的 collections.Counter 不同,它只允许自然数作为键。)
提供了 FrozenBag、OrderedBag 和 FrozenOrderedBag 类,它们是 Bag 的变体。
要求
Python,版本 2.6、2.7 或 3.3 或更高版本。如果您是 Python 新手,请从此处下载最新版本。
安装
使用 pip 安装 Combi
$ pip install combi
社区
GitHub 上的 Combi:https://github.com/cool-RR/combi 欢迎fork和发送pull请求!
有三个 Combi 组,即邮件列表
如果您需要 Combi 的帮助,请在 combi-users Google 组 上发布消息。
如果您想帮助 Combi 的开发,请到 combi-dev Google 组 上打个招呼。
如果您想了解 Combi 的新版本发布信息,请加入 low-traffic combi-announce Google 组。
Combi 由 Ram Rachum 创建。我提供 Python 和 Django 开发服务。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
构建分发
combi-1.1.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e039296deb4cdb250ce451cbf443fa66336243a10329355422ac78e94a35c3c7 |
|
MD5 | cac159ada2f849321aaf2a34bb013f9f |
|
BLAKE2b-256 | e240c924f4d087ea43b25ba7c72c7e45da509d819a089cf053d87920b962391a |
combi-1.1.4-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9875554f9fbe34aa349e390fd6897a52508006582a11f0b907895d85c1e24a6d |
|
MD5 | eb4d3a63420af19d24c62186800b44fa |
|
BLAKE2b-256 | 3d4e06b8dc3733eee9ebffde5522c52b18d6ab73fca31ac57f731a165c860b2f |
combi-1.1.4-py2-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 449e38e76eb80ee88d80ee491a423f8bdb57287b62c751d184a13b4b6a5f122f |
|
MD5 | b08df37f312278dcb334575241816d67 |
|
BLAKE2b-256 | 8bb123b88803834a316ed3f4336b3e13ee4b4153592a7a0d0cc430d019634762 |