|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
lambda作用:能省下定义函数过程,也就省得给函数命名,使得代码更为精简
- >>> def ds(x):
- return 2 * x + 1 # return 定义返回值
- >>> ds(5)
- 11
- >>> lambda x : 2 * x + 1 # lambda构建一个函数对象, 在冒号的前边是原函数的参数,在冒号的后边是原函数的返回值
- <function <lambda> at 0x000000000312A748>
- >>> 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 # 一样lambda表达式构建一个匿名函数
- <function <lambda> at 0x000000000312AB48>
- >>> g = lambda x,y : x + y
- >>> g(3,4)
- 7
复制代码
两个牛逼的BIF:filter() , map()
filter():过滤器 >>> help(filter),看到filter有2个参数,第一个要么是None要么是函数,第二个参数是可迭代的数,功能是把第二个参数作为前面函数的实参,然后把得到的结果非True的给过滤掉
- >>> filter(None,[1,0,False,True]) # 这里看,返回的是一个对象,当第一个参数为None时,功能是把列表里非True给过滤掉
- <filter object at 0x000000000312E1D0>
- >>> list(filter(None,[1,0,False,True])) # 把对象转换为列表
- [1, True]
- >>> def odd(x):
- return x % 2
- >>> temp = range(10)
- >>> show = filter(odd,temp) # 这里odd不加(),只要给函数名字就可以了,让filter过滤器知道去哪里找odd就可以了
- >>> list(show)
- [1, 3, 5, 7, 9]
- >>> list(filter(lambda x : x % 2 ,range(10))) # 加上lambda, 一行代码相当于上面几行代码,求0~10所有的奇数
- [1, 3, 5, 7, 9]
复制代码
map():映射,有两个参数,分别为函数和一个可迭代的序列。功能是将序列的每一个元素作为函数的参数进行运算加工,直到可迭代的序列每个都加工完毕,返回所有加工后的元素构成的新序列。
- >>> list(map(lambda x : x * 2 ,range(10))) # map() + lambda
- [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
复制代码
|
评分
-
查看全部评分
|