python之三元表达式嵌套三元表达式解析
python的三元表达式相信学过python的朋友都会 。 但是大部分学python的朋友不知道的是三元表达式还可以嵌套三元表达式 。
请看代码案例:
cmp = lambda a, b: 0 if a == b else 1 if a > b else -1print(cmp(3,2))print(cmp(2,3))print(cmp(2,2))out:1-10
以上代码的功能是对两个数进行比较 , 若第一个数等于第二个数返回0;若第一个数大于第二个数返回1;若第一个数小于第二个数返回-1 。
直接看是不是比较懵?我把它拆分一下 , 换一种写法 , 会容易懂得多 。
def cmp2(a, b):if a == b:return 0else:if a > b:return 1else:return -1print(cmp2(3, 2))print(cmp2(2, 3))print(cmp2(2, 2))out:1-10
可以看到上述2个函数功能完全一致 , 第一种写法简洁的多!再来熟悉一下这种写法 , 为了便于理解我多加了对括号:
0 if a == b else (1 if a > b else -1)
【python之三元表达式嵌套三元表达式解析】这种语句是三元表达式嵌套三元表达式的结构 , 从左向右计算 。
三元表达式首先找if , 找到if判断a ==b (判断元素):
- 若该条件满足则返回if左边的0(结果元素1)作为整个表达式的运算结果 。
- 若该判断条件不满足则返回判断条件右边的三元表达式(结果元素2) 。
- 若该条件满足则返回if左边的1(结果元素1)作为整个表达式的运算结果 。
- 若该判断条件不满足则返回判断条件右边的-1(结果元素2)作为整个表达式的运算结果 。
三元表达式嵌套三元表达式的结构并不难懂 , 熟练掌握以后会让你的代码更简洁 , 用三元表达式嵌套三元表达式感觉比用if else if else瞬间高大上了很多 , 嘻嘻 。
欢迎学python的朋友关注我 , 我会经常更新深入学python的知识点 。
推荐阅读
- 计算机专业大一下学期,该选择学习Java还是Python
- 重量轻、还能装 尼康大三元收纳箱上手体验
- 想自学Python来开发爬虫,需要按照哪几个阶段制定学习计划
- 未来想进入AI领域,该学习Python还是Java大数据开发
- 2021年Java和Python的应用趋势会有什么变化?
- 非计算机专业的本科生,想利用寒假学习Python,该怎么入手
- 用Python制作图片验证码,这三行代码完事儿
- 历时 1 个月,做了 10 个 Python 可视化动图,用心且精美...
- 为何在人工智能研发领域Python应用比较多
- 对于非计算机专业的同学来说,该选择学习Python还是C