Python if-else short-hand
可能重复:
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的禅”说“可读性很重要”,所以首先要做到这一点。
另外,如果你放置一个variables而不是10
,它的计算结果将会失败。
但是,如果不止这个赋值依赖于这个条件,那么就可以像下面这样编写它:
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