python - 遍历列表(产量)
问题描述
我正在尝试创建一个迭代列表并返回下一个元素的方法。
那是我的清单:
[2、5、7、10、25、30、50、70]
这就是我正在研究的方法:
def iterDenominations(self):
it = iter(self.listDenominations)
yield it.__next__()
当我调用方法并打印结果时
firstCall = C.iterDenominations()
print(firstCall)
secondCall = C.iterDenominations()
print(secondCall)
,前两个打印是:
<0x000001D413F6DC10 处的生成器对象 Currency.iterDenominations>
<generator object Currency.iterDenominations at 0x000001D4140E2EB0>
我应该怎么做才能在 firstCall 和 secondCall 变量中包含 '2'、'5'、'7'、...?谢谢
解决方案
iterable = iter(self.listDenominations)
for item in iterable:
yield item
或者
yield from iterable
调用生成器函数将创建一个生成器,它不会从生成器返回值。因此,您创建生成器,然后调用next
它(或迭代它)
denominations = c.iterDenominations() # make the generator
first_call = next(denominations)
second_call = next(denomination)
rest = list(denominations)
print(first_call, second_call, rest)
推荐阅读
- linux - Sed 搜索正则表达式模式并删除具有上述模式的行
- c++ - 在 C++ 中执行以下代码以进行函数重载时,不输出
- c# - 在堆中为结构实例创建了多少类型对象?
- excel - 另一列中的不同值的 COUNT 值 - EXCEL
- javascript - 是否可以使用正则表达式检测使用的项目符号类型及其顺序以根据项目符号层次结构自动缩进文本?
- google-kubernetes-engine - 是否可以在 GKE 上安装 Sysbox 容器运行时?
- flutter - 如何在颤动中解决“断言失败:第 22 行 pos 16:'target != null': is not true”
- swift - 如何在 swift 中使用 userdefaults 进行登录/注册和注销导航?
- mysql - 如何通过 MySQL 命令获取以 4 和 6 开头的数据
- javascript - React - 通过单击更改样式组件