gpt4 book ai didi

python - Python 中的 "consume"是什么意思?在迭代器中?

转载 作者:太空狗 更新时间:2023-10-29 17:45:37 25 4
gpt4 key购买 nike

我已经使用 Python 工作了几个月,我发现我经常忽略乍看之下无法理解的词汇,而不是试图捕获一个想法的要点。现在回想起来,我仍然对consume 一词的含义感到困惑。我最初的兴趣来自于对迭代器的解释,其中谈到了被消耗的迭代器的值(value)。然而,环顾四周,这在 Python 词典中似乎并不常见。或者是吗?在这里挖掘主要发现对 Web 服务的引用,以及关于如何隐藏这个或那个函数结果的一两个讨论。

那么我想,将我的无知分解为几个基点:

  1. “消费”在不同的 Pythonic 上下文中会做不同的事情吗?
  2. 数据被消耗时会发生什么,比如在 iter() 中?
  3. 当一个变量被分配给迭代器的结果时——据称被消耗的数据——它是否不再属于迭代器?
  4. 您能否在对迭代器的一次调用中从迭代器对象中使用多个值?

我希望这能说得通。请注意,这并非针对任何特定需求;我只是感到困惑,超出了合理的合理性。

编辑:还有一件事......迭代值(当使用 next() 调用时)是否保留在内存中?

最佳答案

术语“消费”是一个非正式术语,指的是迭代器在 Python 中的工作方式。 “迭代器”是负责创建某些元素序列的单个对象。这个序列可能是现有列表的元素,也可能是计算出来的东西,例如素数或 π 的小数位。

当调用者从迭代器请求“下一个”项目时,迭代器提供下一个项目,然后更改自己的状态,以便准备好在之后生成下一个项目。这通常是您所期望的。

如果我有一个生成递增素数序列的生成器,我第一次调用它时会得到 2 作为返回。下一次,我会得到 3。如果我给你那个生成器的引用,你会调用它(你认为是第一次)并得到 5。没有任何方法可以“重置”生成器,因此它将再次从 2 开始,除非创建一个全新的生成器实例。在那种情况下,我可以说在给你发电机之前我已经消费了前两个项目。

关于python - Python 中的 "consume"是什么意思?在迭代器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5187457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com