Python如果

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

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

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

显然,当ij达到极限时,代码就会跳出循环。 我需要循环之外的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的禅”表示“可读性很重要”,所以首先要考虑。

另外,如果你放置一个变量而不是10并且它的计算结果为False ,则和 - 或技巧将失败。

但是,如果分配不止取决于此条件,则可以按照以下方式编写它:

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
链接地址: http://www.djcxy.com/p/7387.html

上一篇: Python if

下一篇: How to condense if/else into one line in Python?