码迷,mamicode.com
首页 > 其他好文 > 详细

lambda 中if-elif-if

时间:2018-04-09 14:50:02      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:bsp   class   表达   条件   一个   改变   ==   表示   使用   

一般情况下:

if 条件1:
    语句1
elif 条件2:
    语句2
else:
    语句3

但如果要使用lambda一行表示if多条件,则:

lambda x: 语句1 if 条件1 else 语句2 if 条件2 else 语句3 
# 实际上是下面这样表达
lambda x: 语句1 if 条件1 else ( 语句2 if 条件2 else 语句3 )

例如: 将S变为0,C变为1,Q变为2:

>>> f = lambda x: 1 if x=="C" else 0 if x=="S" else 2
>>> f("S")
0
>>> f("C")
1
>>> f("Q")
2


>>> f = lambda x: 1 if x=="C" else (0 if x=="S" else 2)
>>> f("C")
1
>>> f("Q")
2
>>> f("S")
0

当然还可以通过一个字典来改变:

>>> di = {"S":0,"C":1,"Q":2}
>>> f = lambda x: di[x]
>>> f("S")
0
>>> f("Q")
2
>>> f("C")
1

 

lambda 中if-elif-if

标签:bsp   class   表达   条件   一个   改变   ==   表示   使用   

原文地址:https://www.cnblogs.com/cymwill/p/8758970.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!