python lambda if else_Python的lambda

if else 可以用简单的三元运算符表示

if 1 == 1:

name = 'wupeiqi'

else:

name = 'alex'

--》

name = 'wupeiqi' if 1 == 1 else 'alex'

对于函数也可以lambda来简化表达

# ###################### 普通函数 ######################

# 定义函数(普通方式)

def func(arg):

return arg + 1

# 执行函数

result = func(123)

# ###################### lambda ######################

# 定义函数(lambda表达式)

my_lambda = lambda arg : arg + 1

# 执行函数

result = my_lambda(123)

内置函数

1,map

遍历序列,对序列中每个元素进行操作,最终获取新的序列。

1106357-20171230175303367-2061383991.png

li = [11, 22, 33]

new_list1 = map(lambda a: a + 100, li)

print new_list1

[111, 122, 133]

li = [11, 22, 33]

sl = [1, 2, 3]

new_list = map(lambda a, b: 2*a + b, li, sl)

print new_list

[23, 46, 69]

2,filter

对于序列中的元素进行筛选,最终获取符合条件的序列

1106357-20171230175617523-457972377.png

li = [11, 22, 33]

new_list2 = filter(lambda arg: arg >= 22, li)

print new_list2

[22, 33]

3,reduce

对于序列内所有元素进行累计操作

1106357-20171230175731929-1604771001.png

1106357-20171230175747710-1463690100.png

li = [11, 22, 33]

sl = [1, 2, 3]

result = reduce(lambda arg1, arg2: arg1 + arg2, li)

print result

# reduce的第一个参数,函数必须要有两个参数

# reduce的第二个参数,要循环的序列

# reduce的第三个参数,初始值

匿名函数lambda作为返回值返回时输出值的问题

def xc(x):

return lambda x:x*x

print xc(4)(4)

def build(x,y):

return lambda x,y: xx+yy

print build(4,5)(4,5)

def build():

return lambda x,y: xx+yy

print build()(5,5)

pl=lambda x:x*x

print pl(3)

print xc(4)

def build(x,y):

return lambda : xx+yy

print build(4,5)()

def build(x,y,z):

return lambda :xx+yy+z

print build(4,5,9)()

def build():

return lambda x,y,z:xx+yy+z

print build()(4,5,9)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值