最近找工作,就复习了排序算法。然后,今天看了网上别人的写的快排的python实现代码,有一段是
def quickSort(arr, left=None, right=None):
left = 0 if not isinstance(left,(int, float)) else left
right = len(arr)-1 if not isinstance(right,(int, float)) else right
之后的代码略.....
我看到上面的代码时,第一反应是我能理解什么意思,但是为什么我之前没见过这种用法?(作为学习和使用python时间并不短的我来说,这种滋味是别扭的)
其他一些编程语言中是有三目操作的,但是 python 中并没有类似 condition ? value1 : value2 三目操作符
实际上,很多情况下我们只需要简单的判断来确定返回值,但是如果使用if-else就显得杀鸡用牛刀,太过臃肿了。
但是,don’t worry! python 可以通过 if-else 的行内表达式完成类似的功能
var = value1 if condition else value2
可以这么理解上面这段语句,如果 condition 的值为 True, 那么将 value1 的值赋给 var;如果为 False 则将 value2的值赋给 var
示例:
>>> a=4
>>> b=True if a%2==0 else False
>>> b
True