Python:在while循环中返回多个值的优雅方式

时间:2015-11-16 04:28:03

标签: python loops

我只是这样做......

while not something():
    pass

但我希望函数something()返回除True或False以外的其他值,特别是列表。在C中我只是通过插入引用作为参数来返回它,但Python似乎不喜欢这样做。因此,在something()函数中,我显然只返回2个值。我很好。我遇到的问题是带有while循环的代码看起来并不优雅,所以我认为必须有更好的方法。

在C:

int a[2];
while(!something(a)); //presume that 'a' updates and the loop breaks

在Python中:

bool_value, a = something()
while not bool_value:
    bool_value, a = something()

我知道这不是什么大问题,但事实上我必须两次写同一行似乎有点不好。是否有某种语法可以用来调用函数并在while行中返回'a'?

2 个答案:

答案 0 :(得分:3)

User

答案 1 :(得分:0)

user2393267的答案是在Python中执行if('' == 0)种结构的惯用方法。但是,您可以按照与列表案例的问题完全相同的模式:

do..while

它不是非常Pythonic,但它实际上会起作用并允许您修改a = [1, 2, 3] while not something(a): pass