<返回更多

python 三元表达式嵌套三元表达式解析

2020-10-14    
加入收藏



Python的三元表达式相信学过python的朋友都会。但是大部分学python的朋友不知道的是三元表达式还可以嵌套三元表达式。

请看代码案例:

cmp = lambda a, b: 0 if a == b else 1 if a > b else -1

print(cmp(3,2))
print(cmp(2,3))
print(cmp(2,2))

out:
1
-1
0

以上代码的功能是对两个数进行比较,若第一个数等于第二个数返回0;若第一个数大于第二个数返回1;若第一个数小于第二个数返回-1。

直接看是不是比较懵?我把它拆分一下,换一种写法,会容易懂得多。

def cmp2(a, b):
    if a == b:
        return 0
    else:
        if a > b:
            return 1
        else:
            return -1

print(cmp2(3, 2))
print(cmp2(2, 3))
print(cmp2(2, 2))

out:
1
-1
0

可以看到上述2个函数功能完全一致,第一种写法简洁的多!
再来熟悉一下这种写法,为了便于理解我多加了对括号:

0 if a == b else (1 if a > b else -1)

这种语句是三元表达式嵌套三元表达式的结构,从左向右计算。

三元表达式首先找if,找到if判断a ==b (判断元素):

右边仍然是三元表达式,继续计算该三元表达式,找到if判断a>b(判断元素):

python的三元表达式非常灵活,从上述案例中可以学习到三元表达式的结果元素可以是三元表达式,也就是说三元表达式可以嵌套三元表达式使用。

三元表达式嵌套三元表达式的结构并不难懂,熟练掌握以后会让你的代码更简洁,用三元表达式嵌套三元表达式感觉比用if else if else瞬间高大上了很多,嘻嘻。

欢迎学python的朋友关注我,我会经常更新深入学python的知识点。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>