马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
lambda表达式
lambda关键字创建匿名函数。用法:lambda + 原函数参数 : 原函数返回值
返回函数对象,一个没有名字的函数对象[ 多个参数用逗号隔开 ]
>>> def ds(x):
return 2 * x + 1
>>> ds(5)
11
>>> lambda x: 2 * x + 1
<function <lambda> at 0x0000000002F5CB70>
>>> a = lambda x: 2 * x + 1
>>> a(5)
11
>>> def add(x, y):
return x + y
>>> add(3, 4)
7
>>> lambda x,y : x+y
<function <lambda> at 0x0000000002F5CD08>
>>> g = lambda x,y : x + y
>>> g(3, 4)
7
过滤器filter() 保留有用信息,舍弃无用信息
filter(function(函数方法或者None类型),iterable(迭代对象))
>>> filter(None, [1, 0, False, True])
<filter object at 0x0000000002EBFE48>
>>> list(filter(None, [1, 0, False, True]))
[1, True]
当filter()和lambda结合起来:
>>> def odd(x):
return x % 2
>>> temp = range(10)
>>> show = filter(odd, temp)
>>> list(show)
[1, 3, 5, 7, 9]
>>> list(filter(lambda x : x % 2, range(10)))
[1, 3, 5, 7, 9]
用列表推导式代替这两者的结合:
>>> [i for i in range(1, 100) if (i%3==0)]
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
映射map() ,使两个参数产生映射关系。如:
map(function(函数方法),iterable(迭代对象))
>>> list(map(lambda x : x*2, range(10)))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
>>> list(map(lambda x, y:[x, y],[1, 3, 5, 7, 9],[2, 4, 6, 8, 10]))
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]] |