进行置换;基于activestate配方190465

xpermutations的Python项目详细描述


简介

这个包是由xpermutations recipe 由Ulrich Hoffman提交给ActiveState。

文中提供的文件如下并假定 在Creative Commons Attribution 3.0许可下。

使用PIP或Easy_安装:

sudo pip install xpermutations

配方文件(Ulrich Hoffman)

算法中经常需要置换和组合。 对解空间进行了彻底的搜索。他们是 通常相当大,所以最好不要计算它们 完全但最好是懒散地生成它们。这个食谱 使用Python2.2生成器创建适当的生成器 对象,例如可以用作for循环中的范围。

这个配方提供了组合和排列,并且懒散地 生成它们。你可以对 排列/组合项不只是打印它们。

如果您需要排列的完整列表,只需使用 内置的list()运算符。请注意,结果列表可能很大。

这里定义的所有x-生成器都会产生包含 原始序列。它们的区别在于采用了哪些元素:

xpermutations()从序列中获取所有元素,顺序很重要。

xcombinations()从序列中提取n个不同的元素, 秩序很重要。

xuniquecombinations()从序列中提取n个不同的元素, 秩序无关紧要。

xselections()从 顺序,顺序很重要。

请注意,“distinct”的意思是“原始文件中的不同元素 “顺序”而不是“不同值”,即:

>>> list(xuniqueCombinations('aabb', 2))
[['a', 'a'], ['a', 'b'], ['a', 'b'], ['a', 'b'], ['a', 'b'], ['b', 'b']]

将后者与:

>>> all_different = list(set('aabb'))
>>> list(xuniqueCombinations(all_different, 2))
[['a', 'b']]

如果序列中只有具有唯一值的项,则不会 注意区别(不是双关语)。

注意事项

集合理论家可能会对这个术语提出异议。

示例

xcombinations()

>>> " ".join("".join(x) for x in xcombinations("1234", 2))
'12 13 14 21 23 24 31 32 34 41 42 43'

xuniquecombinations()

>>> " ".join("".join(x) for x in xuniqueCombinations("1234", 2))
'12 13 14 23 24 34'

xselections()

>>> " ".join("".join(x) for x in xselections("1234", 2))
'11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44'

expermutations()

>>> " ".join("".join(x) for x in xpermutations("123"))
'123 132 213 231 312 321'

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

推荐PyPI第三方库


热门话题
java有可能让Glassfish JAAS领域与一个已安装的应用程序共享一些类吗?   卸载weblogic时发生java log4j错误   java如何读取信息并将这些信息放入对象数组中   java线程池执行器。创建新线程时执行(Runnable命令)   java无法将project facet动态Web模块的版本更改为2.5   未添加到ArrayList Java Android的元素   javajavax。xml。绑定UnmarshaleException:意外元素(uri:,local:“ProcessCreditApplication”)。预期的元素是   java如何通过youtube API获取已删除视频的列表   如何在JavaBean验证中停止级联   java为什么我的ListView使我的应用程序崩溃,而不是列出我的条目?   java Guice多数据库自动切换   java(JDA)Mute命令在代码的第四行中断   推荐一种可通过Java中的随机访问进行更新的索引文件格式   java将arrayList添加到2x2 arrayList   java json对象数据发生变化,有时没有值   java使用Jedis库在redis中一次存储字符串列表   java快速排序分区   java setDaemon(false)是冗余的吗?   Java中的itext格式pdf