【问题标题】:Generator that produces sequence 0,1,2,3,生成序列 0,1,2,3 的生成器,
【发布时间】:2022-11-05 03:21:50
【问题描述】:

Python 是否提供了生成无限序列 0,1,2,3,... 的函数?

很容易实现它:

def gen_range():
  count = 0
  while True:
    yield count
    count = count + 1 

但我想,这已经存在于 Python 中。

【问题讨论】:

标签: python count range generator


【解决方案1】:

是的,它确实。查看itertools.count 内置函数。正如您可以在链接的文档中阅读的那样,您可以设置起始编号以及步骤。浮点数也是允许的。

以下是如何使用它:

from itertools import count

for n in count():
    print(n)

这将打印 0, 1, 2, 3, ... (小心!这个例子不会停止,直到你强迫它以某种方式停止)。

【讨论】:

  • @daniel-hao 如果 OP 解释他获得无限生成器的目标是什么,那就太好了
  • @Cardstdani 不相关,有很多用例
  • 我正在逐行浏览文件,我想知道行号。因此我的循环是for line, line_number in zip(file.splitlines(), count()):
猜你喜欢
  • 2012-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-22
  • 2011-08-25
  • 1970-01-01
  • 1970-01-01
  • 2013-10-02
相关资源
最近更新 更多