python - for(i=0;True;i++) 在 python 中?

标签 python

是否有更 pythonic 的方式,或者至少是更短更简单的方式来做到这一点:

i = 1
while True:
    res = lookup(i) # returns a value or None
    if res is None:
        break
    else:
        i += 1
        yield res

最佳答案

您可以使用 itertools :

from itertools import takewhile, count

# ...
def myfunc():
    return takewhile(lambda x: x is not None, (lookup(i) for i in count(1)))

如果您出于某种原因不喜欢takewhile:

for i in count(1):
     res = lookup(i)
     if res is None: break
     yield res

关于python - for(i=0;True;i++) 在 python 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10785218/

相关文章:

python - uwsgi 服务没有启动

python - 在 Django 表单上引发 ValidationError 的问题

python - 如何在套接字中获得最新的recv通知(python)

python - 在 Python 3.4 中导入表格时出现问题

Python:DeprecationWarning:elementwise == 比较失败;这将在未来引发错误

python - 如何在 Python for 循环中获取 GAE ndb 中当前记录的键?

python - Pandas,如何重新索引通过附加多个数据帧生成的数据帧。

python - 定义字典成员比较而不重载 IN?

Python 在 Ubuntu 上安装 Global Arrays Toolkit

python - 我可以调试 django 以显示它正在渲染哪个模板吗?