【问题标题】:The book [Learning Python] claimed that range is a generator- - Is this a false statement?这本书[Learning Python]声称范围是一个生成器--这是一个错误的陈述吗?
【发布时间】:2019-02-01 13:02:55
【问题描述】:

为了便于讨论,我将基于Python 3.6.1提出以下问题

我从 [Learning Python](第 5 版,第 20 章,第 614 页)一书中读到:

正如我们所见,基本的内置工具,例如范围、地图、字典 密钥,甚至文件现在都是生成器,因此即使您不编写自己的新生成器,您也必须熟悉这个概念。

这是一个错误的陈述吗?

我认为作为迭代器的对象是它成为生成器的必要但非充分条件。也就是说,生成器的迭代器始终是生成器本身。

然而,范围和字典键是可迭代的,但它们不是它们自己的迭代器。如果它们不是迭代器,它们怎么可能是生成器?

【问题讨论】:

    标签: python python-3.x iterator generator iterable


    【解决方案1】:

    有时人们使用“生成器”来表示任何惰性迭代,即使这不是精确的定义。在 Python 3 中,range 是一个惰性可迭代对象。

    【讨论】:

      猜你喜欢
      • 2015-06-17
      • 2021-03-13
      • 1970-01-01
      • 2012-09-18
      • 2012-03-25
      • 2010-12-22
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      相关资源
      最近更新 更多