大家在使用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
中也有相似的用法。
最标准的用法:
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
,另一个不是的差别,但是逻辑相对比较难理解,这里的and
与or
,相当于C
中的?
与:
,是ifelse
的一种简写。而下面这一种简写方式就比较好理解了。
max_value = x if x > y else y
这一行命令的逻辑:若x > y
,则max_value = x
,否则:max_value = y
。