刚做了一个题:问max=x>y?x:y是否在python中成立。
这当然是不行的啦,这是c语言的条件表达式,那么在python中如何实现条件表达式呢?
假设 a,b,c=1,2,3
c = a if a>b else b
上面是python的二分支结构的一种简洁表达方法。
c = [b,a][a>b]
二维列表
False返回第一个,True 返回第二个。
if a>b:
c = a
else:
c = b
常规方法。
c = (a>b and [a] or [b])[0]
False and [1] or [2],因为and的优先级高于or,先算and
False和[1] and之后还是False,和[2]or之后却成了[2]
True 和[1] and之后是[1],[1]和[2]or结果是[1]
也就是False和True在和别人做boolean运算的时候,根据and还是or,F和T在前在后有不一样的数据转换规则