在C++中,我经常使用以下模式:
while (int i = getNextElementPlease()) {
printf("%d\n", i);
}
但是在python中,我必须重复调用两次:
i = getNextElementPlease()
while (i):
print(i)
i = getNextElementPlease()
如何避免
getNextElementPlease
重复? 最佳答案
使用经典的while True
/break
模式:
while True:
i = getNextElementPlease()
if not i:
break
...
或通过使用two-argument form of
iter
从您的函数中构建迭代器:for i in iter(getNextElementPlease, sentinel):
...
其中
sentinel
是您期望终止循环的任何值。大概像None
。迭代器将调用getNextElementPlease
获取元素,并在getNextElementPlease
返回前哨值时停止。关于python - 如何在Python中使用while(i = getNext())模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53903066/