Python if-else 简写
假设我有一些代码如下:
if A[i] > B[j]:
x = A[i]
i += 1
else:
x = B[j]
j += 1
有没有更简单的写法?Python有没有类似的语法?
x = (A[i] > B[j]) ? A[i] : B[j]
((A[i] > B[j]) ? i : j) += 1
2 个回答
22
试试这个:
x = a > b and 10 or 11
这是一个执行的示例:
>>> a,b=5,7
>>> x = a > b and 10 or 11
>>> print x
11
374
最简单易懂的写法是
x = 10 if a > b else 11
不过你也可以用 and
和 or
,这也是可以的:
x = a > b and 10 or 11
不过“Python之禅”说过“可读性很重要”,所以建议你用第一种写法。
另外,如果你把一个变量放在 10
的位置,而这个变量的值是 False
,那么用 and-or 的方法就会出问题。
不过,如果这个条件不仅仅是为了赋值,还涉及到其他的内容,那么你这样写会更容易理解:
if A[i] > B[j]:
x = A[i]
i += 1
else:
x = A[j]
j += 1
除非你把 i
和 j
放在一个容器里。但如果你能告诉我们你为什么需要这样做,可能会发现其实你并不需要。