Python if-else short-hand

可能重复:
Python中的三元条件运算符

我想在python中执行以下操作:

while( i < someW && j < someX){ int x = A[i] > B[j]? A[i++]:B[j++]; .... } 

显然,当i或者j达到极限时,代码就会跳出循环。 我需要循环之外的ij的值。

我真的该做吗?

 x=0 ... if A[i] > B[j]: x = A[i] i+=1 else: x = B[j] j+=1 

还是有人知道更短的路?

除了上述,我可以得到Python来支持类似的东西

 a,b=5,7 x = a > b ? 10 : 11 

最可读的方式是

 x = 10 if a > b else 11 

但是你也可以使用andor

 x = a > b and 10 or 11 

然而,“Python的禅”说“可读性很重要”,所以首先要做到这一点。

另外,如果你放置一个variables而不是10 ,它的计算结果将会失败。

但是,如果不止这个赋值依赖于这个条件,那么就可以像下面这样编写它:

 if A[i] > B[j]: x = A[i] i += 1 else: x = A[j] j += 1 

除非你把ij放在容器里。 但如果你告诉我们为什么你需要它,那么你可能不会。

尝试这个:

 x = a > b and 10 or 11 

这是一个执行的例子:

 >>> a,b=5,7 >>> x = a > b and 10 or 11 >>> print x 11