问题标签 [itertools]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
541 浏览

python - 生成包含 m 个可能元素的长度为 n 的列表

我需要在 Python 中生成大量列表。每个列表的长度为 13,每个元素都有 4 个可能的值。这些是 [1, -1, i, -i],但也可以是任何值。

因此,鉴于主题中的信息,我应该得到 4 * 4 * 4 ... * 4 = 4^13 = 67,108,864 个列表,或者更一般地说,m^n。

我尝试了 Python 的 itertools 中的 combination_with_replacement 方法,但是使用以下代码我只得到 560 个结果。

我知道组合不关心顺序,所以这个结果可能是正确的。但是,当我改用 permutations 方法时,我只能选择第二个参数 <= 第一个参数中的元素数。

知道如何做到这一点吗?

谢谢!

0 投票
3 回答
171 浏览

python - 消除重复并总结列表中的相应术语

鉴于这两个列表

我想获得

列表始终是有序的,并且相同的大小和元素对应为键值对,例如 A:3、B:2 等。

目标是消除 L2 中的重复项并将 L3 中的相应项求和以获得具有匹配对的新列表。这是为了在将项目添加到列表时保持项目的运行列表。

我试图写一个函数,index但它开始变得丑陋。我查了一下itertools,但找不到任何相关的东西;我看了看,starmap()但无法让它工作。可能这也可以通过列表理解来完成。我将不胜感激有关如何实现这种最简单方法的任何线索或方向。谢谢你。

编辑

@西蒙C:

这如何消除欺骗并添加数字?你能给个线索吗?谢谢。

0 投票
6 回答
463 浏览

python - Python中的字符串覆盖优化

我有这个初始字符串。

还有一个带字符串的元组:

我想要一个函数,以便从初始字符串和带字符串的元组中获得:

我知道如何通过在每个单词的初始字符串中找到单词,然后在所有初始字符串中逐个字符地循环替换单词来强制执行此操作。

但这不是很有效和丑陋。我怀疑应该有一些更优雅的方法,以功能的方式,使用 itertools 或其他东西。如果您知道可以有效执行此操作的 Python 库,请告诉我。

更新:贾斯汀·皮尔(Justin Peel)指出了一个我在最初的问题中没有描述的案例。如果单词是 'aaa' 并且 'aaaaaa' 在初始字符串中,则输出应类似于 'xxxxxx'。

0 投票
1 回答
950 浏览

python - python itertools 跳过

我有一个列表列表。使用itertools,我基本上是在做

for result in product([A,B],[C,D],[E,F,G]): # 测试每个结果

结果是所需的产品,每个结果都包含每个列表中的一个元素。我的代码逐个元素地测试每个结果,寻找第一个(也是最好的)“好”的结果。可能有非常非常大的数量需要测试。

假设我正在测试第一个结果“ACE”。假设当我测试第二个元素“C”时,我发现“ACE”的结果很糟糕。无需测试“ACF”或“ACG”。我想直接从失败的 ACE 跳到尝试 ADE。无论如何要做到这一点而不只是把不需要的结果扔到地板上?

如果我使用嵌套的 for 循环来实现这一点,我会尝试在循环内操纵 for 循环索引,这不是很好……但我确实想跳过测试很多结果。我可以在 itertools 中有效地跳过吗?

0 投票
1 回答
1369 浏览

python - 在python中枚举带有标签的笛卡尔积的最佳方法?

给定一个字典,将变量映射到可能的结果: { 'lblA' : [False, True], 'lblB' : [False, True], 'lblC' : [0,1,2] }

我想列举所有可能的字典结果:

我知道这可以递归完成,但我真的很想itertools加快速度。

有谁知道做到这一点的最佳方法?

非常感谢你的帮助!

编辑

我想为任意字典执行此操作。

0 投票
2 回答
2169 浏览

python - 在 Python 中生成置换词表的子集

我有一个单词列表,我需要生成这些单词的所有可能排列,但要注意一点。

我目前使用以下代码:

这给出了输出:

但是我还需要它来打印这些单词的子集,例如:

但我一点也不知道如何做到这一点。我从哪里开始?我应该读什么?

0 投票
6 回答
9227 浏览

python - itertools 产品加速

我使用 itertools.product 生成长度为 13 的 4 个元素的所有可能变化。4 和 13 可以是任意的,但实际上,我得到 4^13 个结果,这很多。我需要将结果作为 Numpy 数组,目前执行以下操作:

中间插入了一些简单的分析代码,看起来第一行几乎是瞬间完成的,而转换为列表和 Numpy 数组大约需要 3 个小时。有没有办法让它更快?这可能是我忽略的非常明显的事情。

谢谢!

0 投票
2 回答
586 浏览

python - 优化多元多项式指数生成器

嗨,我试图找到一个通用表达式来获得多变量多项式的指数order和,就像等式(3)n_variables中本参考文献中提出的那样。

这是我当前的代码,它使用itertools.product生成器。

想要的输出是这样的:

实际上这段代码执行得很快,因为只创建了生成器对象。如果我想用这个生成器中的值填充一个列表,执行真的开始很慢,主要是因为对sum. 和的典型值分别为 5ordern_variables10。

如何显着提高执行速度?

谢谢你的帮助。

大卫烤宽面条

0 投票
4 回答
64077 浏览

python-2.7 - 什么时候使用 zip 而不是 izip 更好?

什么时候使用zip而不是更好itertools.izip

0 投票
7 回答
8237 浏览

python - 如何反转 itertools.chain 对象?

我的函数创建了一个生成器链:

我的函数有时需要以chained相反的顺序返回。从概念上讲,以下是我希望能够做的事情:

很遗憾:

我有哪些选择?

这是一些实时图形渲染代码,所以我不想让它太复杂/太慢。

编辑:当我第一次提出这个问题时,我没有考虑过发电机的可逆性。正如许多人指出的那样,发电机不能逆转。

实际上,我确实想反转链的扁平内容;不仅仅是生成器的顺序。

根据回复,我无法使用单个调用来反转 itertools.chain,因此我认为这里唯一的解决方案是使用列表,至少对于反向情况,也许两者兼而有之。