python之三目运算符的替代品?

# 不知曾几何时,你是否也觉得Python的三目运算写起来很麻烦呢?(没有过)
# 比如:
a, b = 3, 4
c = a if a > b else b
d = a if a < b else b
print(c, d)
# 就是简单的找两个数里边大的那个和小的那个,max,min就行了,不过这里为了演示,就别计较那么多了。
# 很!麻!烦!对不对!(没有啊,我觉得挺简便的啊)
# 那么现在就让我们来看看它的替代写法!(喂!我说了不麻烦啊!算了你说吧。)
a, b = 3, 4
# 前面还是一样。(你在凑字数吧,我说!)
# 闭嘴,你不也是!
c = [b, a][a > b]
d = [b, a][a < b]
print(c, d)
# 嘿嘿,看懂了吗?是不是很神奇?(所以你?)
# 所以我?(所以你作弊了!这怎么可能是对的??)
# 。。。才没有,我给你讲一下吧!(洗耳恭听)
# 首先,用a和b组成一个只有2项的列表,因为python的列表里什么都可以装,所以可以等价替换到其他非数字的情况。
# 然后后面的[]里就不是列表了,而是python的切片,或者你理解成c或java里的数组索引也行。
# 我们都知道,bool类型转int的话,False对应0,True对应1.所以这里如果a>b,结果就是1,就会得到a,反之得到b。
posted @ 2020-02-21 12:41  return_false  阅读(578)  评论(0编辑  收藏  举报