在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/

10-12 18:38