python三元运算法 exp1 if contion else exp2 condition

三元运算法 exp1 if condition else exp2
condition是判断条件,exp1 和 exp2 是两个表达式。如果
condition 成立(结果为真),就执行 exp1,并把 exp1 的结果作为整个表达式的结果;如果 condition 不成立(结果为假),就执行 exp2,并把 exp2 的结果作为整个表达式的结果

items = [1, 2, 3]
def sum(x):
    head, *tail = x
    return head + sum(tail) if tail else head

print(sum(items))

上图中的 sum(tail) if tail else head 就是三元运算法

tail就是condition 只要tail=[] 就把head给他
a=sum(tail) if tail else head
第一次
1 + sum(2,3)if(2,3)else 1
由于
a=sum(2,3)if(2,3)else 1
等价于
1+a
condition if(2,3)为真 所以a=sum(2,3)
1+sum(2,3)
第二次
1+(2+sum(3) if 3 else 2)
同理得
1+(2+sum(3))
第三次
1+(2+(3 + sum[] if [ ])else 3)
a=sum[] if [] else 3 (空列表为假)
等价于a=3

1+(2+(3))=1+5=6

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值