|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
lambda表达式的结构:
>>> def ds(x):
return 2*x+1
>>> ds(5)
11
>>> lambda x : 2*x+1
<function <lambda> at 0x029F38E8>
这里的x 为原函数的参数
冒号后面为原函数的返回值
lambda语句返回一个对象,使其显示结果只需要对其进行赋值操作
>>> g= lambda x : 2*x+1
>>> g(5)
11
冒号前面的参数可以是多个,使用逗号隔开
>>> def add(x,y):
return x+y
>>> add(3,4)
7
>>> lambda x,y : x+y
<function <lambda> at 0x032BD0C0>
>>> g= lambda x,y : x+y
>>> g(3,4)
7
lambda表达式的作用:
- python经常被用来和linux配合使用写脚本,
python写一些执行脚本时,使用lambda就可以省下定义函数的过程,比如我们知识需要写个简单的脚本来管理服务器的时间,我们就不需要专门定义一个函数然后再写调用,使用lambda就可以使得代码更加精简。
- 对于一些比较抽象并且整个程序执行下来只需要调用一两次的函数,有时候给函数起个名字也是比较头疼的问题,使用lambda就不需要考虑命名的问题了。
- 简化代码的可读性,由于普通的屌丝函数阅读经常要调到开头def定义部分,使用lambda函数可以省区这样的步骤。
两个牛逼的BIF
filter()
过滤器:可以过滤掉不关注的信息,通过过滤器进行筛选,得到想要的信息
原理就是将所有非True的内容过滤掉
filter(function or None, iterable) --> filter object
|
| Return an iterator yielding those items of iterable for which function(item)
| is true. If function is None, return the items that are true.
当第一个参数为一个函数时,将后面iterable的每个数据带入函数,筛选出使所有函数值不为零的数据
当第一个参数为None时,筛选出iterable数据里的所有非零项
>>> filter(None,[1,0,False,True])
<filter object at 0x03C67550>
>>> list(filter(None,[1,0,False,True]))
[1, True]
Bsp:
筛选出所有奇数
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 , temp ))
[1, 3, 5, 7, 9]
Map()映射
map(func, *iterables) --> map object
|
| Make an iterator that computes the function using arguments from
| each of the iterables. Stops when the shortest iterable is exhausted.
对序列里的每个数据带入函数加工,直到序列里的每个数据都加工完毕,返回由所有加工后的元素构成的新序列。
>>> list(map(lambda x:x*2,range(10)))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18] |
评分
-
查看全部评分
|