提起三目表达式,相信大家都不陌生。该表达式,简化了代码的书写,可以说一定程度上,让我们的代码,看起来十分精炼。不同的编程原因,绝对部分都会提及到三目语法。比如,在systemverilog 语言中,定义 if 判断条件为真 ? 条件为真的表达式:条件为假的表达式。
今天,我们着重总结python 的三目语法。
1. Python中的三元表达式语法
result = 为真时的结果 if 判断条件 else 为假时的结果
# 示例: >>> x = 1 >>> y = 2 >>> result = x if x > y else y # 如果条件成立,将x的值赋给result >>> result 2
上面的三元表达式等价于
>>> x = 1 >>> y = 2 >>> if x > y: ... result = x ... else: ... result = y ... >>> result 2 >>>
2. 三元表达式的常见应用
2.1 结合普通函数使用
# 示例一: 求两个参数的最大值 >>> def max(x, y): ... return x if x > y else y # 取两个值的比较大的 ... >>> max(1, 3) 3 >>> # 示例二: 斐波那契数列 >>> def fib(n): ... return n if n<2 else fib(n-1)+fib(n-2) ... >>> [fib(n) for n in range(10)] [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] >>>
2.2 结合匿名函数使用
>>> map(lambda x,y:x-y if x> y else y-x, [2,1,3],[4,3,1]) # 两个列表相减并保证不为负 [2, 2, 2] >>>
2.3 结合列表推导使用
# 示例一: 将0-9的10个数,奇数用0表示,偶数用1表示 >>> [0 if i % 2 == 0 else 1 for i in range(10)] [0, 1, 0, 1, 0, 1, 0, 1, 0, 1] # 示例二: 常规写法 >>> x = 100 >>> L = [] >>> L.append(1 if x>0 else 0) >>> L [1] >>>
2.4 在处理Json格式中的应用
使用三元表达式的写法
一般的写法,可以看见,使用三元表达式的写法要简洁的多!
2.5 三元表达式的一个变种
下面是三元表达式的一个变种,但是只能针对bool 操作。注意,此时 bool(参数) 中的参数,可以是非布尔变量。
>>> cond = True >>> name = ["Cat", "Tom"][bool(cond)] >>> name 'Tom' >>> cond = "" >>> name = ["Cat", "Tom"][bool(cond)] >>> name 'Cat' >>>
3 总结
最后,推荐大家尝试多去运用三目运算表达式。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233813.html原文链接:https://javaforall.net