Python如果
可能重复:
Python中的三元条件运算符
我想在python中执行以下操作:
while( i < someW && j < someX){
int x = A[i] > B[j]? A[i++]:B[j++];
....
}
显然,当i
或j
达到极限时,代码就会跳出循环。 我需要循环之外的i
和j
的值。
我真的该做吗?
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
但你也可以使用and
和or
:
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
除非你把i
和j
放入容器中。 但是如果你向我们展示你为什么需要它,那很可能你不知道。
尝试这个:
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