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

python - Python:itertools.islice 不在循环中工作

我有这样的代码:

line_str 第一遍是正确的,但之后的每一遍都在读取不同的行。

例如,goto_line 从 1000 开始。它读取第 1000 行就好了。然后下一个循环,goto_line 是 500,但它不读取第 500 行。它读取接近 1000 的一些行。

我正在尝试读取大文件中的特定行,而无需阅读更多内容。有时它向后跳到一条线,有时向前跳。

我确实尝试过 linecache,但我通常不会在同一个文件上多次运行此代码。

0 投票
5 回答
18026 浏览

python - 在 Python 中实现 argmax

argmax 应该如何在 Python 中实现?它应该尽可能高效,因此它应该与可迭代对象一起使用。

可以通过三种方式实现:

  • 给定一个可迭代的对返回对应于最大值的键
  • 给定一个可迭代的值返回最大值的索引
  • 给定一个可迭代的键和一个函数f,返回最大的键f(key)
0 投票
1 回答
283 浏览

python - 从 Python groupby 填充日期

我有一组新闻文章对象,我希望按不同的月份显示这些对象。我曾经itertools.groupby创建过以这种方式排序的 Python 对象列表:

所以我最终得到了一个像这样的集合:

我想填充 news_grouped 集合,以便它在最旧的文章和今天的日期之间包含每个月的条目,空的只有一个空列表。

我意识到我可以通过从最旧的日期迭代到最新的日期并填充集合来做到这一点,但是关于这方面的一些事情并不完全适合我,我想它也不是很有效。

有没有更优雅的方法来解决这个问题?谁能指点我一个?

(我实际上正在使用 Django 并且正在使用重组,但似乎我最好在模板之外的 python 中解决这个问题——我当然可能是错的)

非常感谢。

卢多。

0 投票
2 回答
12204 浏览

python - itertools.chain 链接一个迭代器列表?

这可以打印组合。

但是这个:

不会,它会打印出来

我必须重写代码以使其按要求工作。

这是我的问题:

他们之间有什么不同?根据文档itertools.chain确实:

那么,为什么itertools.chain(iter, iter, iter)也可以在这里工作?
是什么意思iter, iter, iter = *(iter, iter, iter)

0 投票
2 回答
29664 浏览

python-3.x - itertools.cycle().next()?

好吧,我在itertools.cycle().next()Python 2.6.6 中使用了方法,但现在我更新到 3.2,我注意到itertools.cycle()object 没有 method next()

spin()我用它在类的方法中循环一个字符串Spinner。因此,如果我们循环 tuple ('|', '/', '-', '\\', '|', '/', '-'),它将打印:|, /, -, \, |, /, -, |,/等等...

我搜索了 Python 3.0、3.1 和 3.2 的发行说明,并没有注意到这方面的任何变化。什么时候改变了?是否有任何简单的替代方法可以实现与以前相同的功能?

先感谢您。

0 投票
4 回答
2436 浏览

python - 使用 Itertools 和 Python 生成二进制表

所以这就是我正在尝试的

但这正在生成 [('0', '0'), ('0', '1'), ('1', '1')]

我仍然需要一个 ('1','0') 元组,有没有办法让 itertools 也进行组合和排序?

0 投票
3 回答
5922 浏览

python - itertools 中的 izip_longest:这是怎么回事?

我正在努力理解下面的代码是如何工作的。它来自http://docs.python.org/library/itertools.html#itertools.izip_longest,是 izip_longest 迭代器的纯 python 等价物。我对哨兵功能特别困惑,它是如何工作的?

0 投票
2 回答
3278 浏览

python - 如何将 itertools.permutations("0123456789") 的结果(在 python 中)转换为字符串列表

在 Python 中,我正在使用list(itertools.permutations("0123456789")),并且我正在接收(如预期的那样)单个字符串的元组列表。

有没有办法将该结果转换为字符串列表,而无需遍历所有 3628800 个项目?

0 投票
1 回答
91 浏览

python - 如何在 SQLAlchemy 中的 M2M 上执行简单的 next() 方法?

我有两个多对多模型,组和个人。

我可以访问 group.individuals 并获取相关个人的列表。我在组模型上有一个“last_individual_id”列,以跟踪上次使用的个人。有了这些信息,我正在徘徊如何为一个小组找到下一个个人。

我想为个人获取 id 并使用 itertools.cycle 但我无法指定起点。另外,如果我可以在 SQLAlchemy 中正确地做到这一点,这可能是一种缓慢的方法。

关于如何做到这一点的任何想法?我觉得我会因为答案如此简单而感到尴尬......但我今天没有咖啡因!

谢谢

0 投票
3 回答
873 浏览

python - python:如何在不重复项目的情况下制作可迭代的产品?

我需要一个功能与 itertools.product 类似的功能,但不重复项目。

例如:

有任何想法吗?

编辑:我的措辞不正确。我的意思是不重复连续输出值中相同的数字
例如,

这里 1,4 在输出中出现了两次。所以,当数字与之前的项目相同时,我想跳过写数字。所以,我想要的输出是:

为 None 时,理解为与结果中的前一项相同。

进一步编辑:

我的解释仍然不够清晰。让我们假设我有书籍列表、章节编号和页码。假设每本书的章节数相同,并且每章的页数相同。所以,列表是 (book1, book2, book3), (chap1, chap2), (page1, page2, page3)。
现在,假设我想收集每个页面的描述:
itertools.product 会给我:

如果我把这些页面依次排列,我就不需要重复描述了。所以,如果书和章节相同,在第二页,我不需要书名和章节名所以,输出应该是: