问题标签 [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 投票
4 回答
145 浏览

python - 用于在列表中创建给定数量元素的 Python 习惯用法

通常,当我使用 Python 时,我会发现自己编写的列表推导式看起来像这样:

显然,这很好用,但是当我根本没有真正使用该信息时,创建一个范围并在其中迭代虚拟索引对我来说仍然有点尴尬。

我一点也不关心性能或类似的东西,只是感觉它不像 Python 通常那样优雅。

我想知道是否有任何很好的惯用方式来避免不必要的列表理解语法,也许使用类似map或 in 的东西itertools,给我看起来更像......

0 投票
6 回答
19667 浏览

python - Python 的 itertools.repeat 的目的是什么?

对于我能想到的 Pythonitertools.repeat()类的每一种用途,我都能想到另一种同样(可能更多)可接受的解决方案来实现相同的效果。例如:

有没有哪种情况itertools.repeat()是最合适的解决方案?如果有,在什么情况下?

0 投票
2 回答
1503 浏览

python - 在 itertools.products 中命名可迭代的部分

我一直在阅读 about itertools,这似乎是一个非常强大的模块。我特别感兴趣的是itertools.product()哪个似乎给了我所有可迭代输入的组合。

但是,我想知道每个输出来自哪个输入迭代。例如,一个简单的标准示例是:

如果用户提供了 [1,2,3], [1, 2] 的输入,我将不知道他们输入的顺序,所以得到的结果

没有多大帮助,因为我不知道他们会朝哪个方向走。是否有某种方式提供输入,例如:

然后得到如下输出:

或者

0 投票
2 回答
558 浏览

python - 使用 Python IndexError 创建真值表:列表超出范围

尝试使用 itertools 通过 Python 制作真值表但不断收到相同的错误

到目前为止,这是我的代码

错误出现在 main() 和 w0 = gen_constants (int(sys.argv [1]))

0 投票
2 回答
923 浏览

python - 使用 itertools 生成 2 个 1 和 3 个 0 的所有排列

可能是基本的,但在任何其他问题中都找不到。我试过:

但是有很多重复,似乎 itertools 不理解所有的零并且所有的都是相同的......

我错过了什么?

编辑:

哎呀。感谢 Gareth,我发现这个问题是重复的:permutations with unique values。没有关闭它,因为我认为我对问题的措辞更清楚。

0 投票
4 回答
700 浏览

python - 使用 itertools 索引数组

这是一段代码,它给了我一个与我所期望的不同的答案。这条线:print list(x)做我所期望的。我希望这行:print random_array[list(x)]返回数组中该元素的值,但它返回三个数组。如果例如list(x)返回[9, 8, 7]然后random_array[9, :, :], random_array[8, :, :], random_array[7, :, :]将被打印。有人可以向我解释这是为什么吗?我怎样才能得到预期的答案?

0 投票
1 回答
1379 浏览

python - 在python中具有块大小序列的石斑鱼?

我有一个生成器,我想在两个级别上进行迭代。第一级间隔不均匀,然后我想将下一个级别分成 5 个组,比如说。我需要它具有内存效率并处理生成器输入,所以我正在做类似以下的事情。我不得不认为可能有更好的方法?特别是,我不希望在不均匀长度结果中出现尾随无。

0 投票
1 回答
917 浏览

python - itertools 骰子掷骰子:双倍掷骰子两次

我正在尝试学习 Python 库itertools,我认为一个好的测试是模拟掷骰子。product使用库生成所有可能的滚动并计算可能的方式很容易collections。我正在尝试解决诸如大富翁之类的游戏中出现的问题:当双打时,您再次滚动,您的最终总数是两次滚动的总和。

下面是我解决问题的开始尝试:两个计数器,一个用于双打,另一个用于非双打。我不确定是否有将它们结合起来的好方法,或者这两个计数器是否是最好的方法。

我正在寻找一种巧妙的方法来解决(通过枚举)使用 itertools 和集合的双打掷骰子问题。

0 投票
3 回答
7052 浏览

python - 带有约束的 Python 排列

我正在使用 python 3,我试图找到一种方法来获取列表的所有排列,同时强制执行一些约束。

例如,我有一个列表L=[1, 2, 3, 4, 5, 6, 7]

我想找到所有排列。但是,我的限制是:

  • 1 应该总是在 2 之前。
  • 3 应该在 4 之前,而 4 又应该在 5 之前。
  • 最后,6 应该在 7 之前。

当然,我可以生成所有排列并忽略那些不遵循这些约束的排列,但我猜这不会是有效的。

0 投票
4 回答
6881 浏览

python - 如何遍历字母和数字

我想知道如何在 Python 中遍历一组条件。

  1. 具有 2-6 个小写字母或数字字符的字符串
  2. 第一个字符始终是数字

所以一个简短的进展将是:

可以做到前两个的一个可怕的例子是

我找到了 itertools,但找不到很好的例子。