Python中的三元表达式(一行语句实现if else,与R对比)

53 篇文章 28 订阅

大家在使用R的时候,为了使代码变得更加简洁,以一个最简单的求最大值函数为例,我们标准的语法是:

x <- 3
y <- 4

if (x > y) {
  max_value <- x
} else {
  max_value <- y
}

这里需要注意,R中的if else用起来会比较坑爹,主要是需要注意else的摆放需要注意,是夹在两个大括号中间的,这个千万不要弄错了。


当然,这时我们可以转化为一行代码(使用ifelse函数进行简写)就能解决问题:

max_value <- ifelse(x > y, x, y)

同样,在Python中也有相似的用法。


Python中实现

最标准的用法:

x, y = 3, 4
if x > y :
  max_value = x
else :
  max_value = y

标准形式就不再作过多的说明,下面介绍简化使用的三种形式:

max_value = (x > y and x or y)
max_value = (x > y and [x] or [y])[0]

针对上面两种情况,其实就是一个是list,另一个不是的差别,但是逻辑相对比较难理解,这里的andor,相当于C中的?:,是ifelse的一种简写。而下面这一种简写方式就比较好理解了。

max_value = x if x > y else y

这一行命令的逻辑:若x > y,则max_value = x,否则:max_value = y


参考博客:
  1. Python 三元表达式
  2. python 中 ? : 三元表达式 的实现方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值