【Python 基础篇】Python代码 之 三目表达式总结

提起三目表达式,相信大家都不陌生。该表达式,简化了代码的书写,可以说一定程度上,让我们的代码,看起来十分精炼。不同的编程原因,绝对部分都会提及到三目语法。比如,在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 总结 

最后,推荐大家尝试多去运用三目运算表达式。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值