当前位置:  开发笔记 > 编程语言 > 正文

大多数Pythonic方式相当于:while((x = next())!= END)

如何解决《大多数Pythonic方式相当于:while((x=next())!=END)》经验,为你挑选了2个好方法。



1> jfs..:

@Mark Harrison的回答:

for x in iter(next_, END):
    ....

以下是Python文档的摘录:

iter(o[, sentinel])

返回一个迭代器对象. ...(snip)...如果给出了第二个参数sentinel,,那么它o必须是一个可调用的对象.在这种情况下创建的迭代器将调用o 每个对其next()方法的调用没有参数 ; 如果返回的值等于sentinel, StopIteration则会引发,否则返回该值.



2> Johannes Hof..:

这取决于你想做什么.为了尽可能地匹配您的示例,我将使下一个生成器并迭代它:

def next():
   for num in range(10):
      yield num

for x in next():
   print x

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有