python lambda的详细介绍

时间:2021-09-12 19:12:14

lambda 函数,又叫匿名函数。不需要给这个函数命名。

先看一个简单的栗子:

 (普通的函数)

1 >>> def f(x):
2 return x * 2
3
4 >>> print f(3)
5 6

用lambda表达式可以表示为

1 >>> g = lambda x : x* 2
2 >>> print g(3)
3 6

lambda 中,冒号前面是参数,可以多个,用逗号隔开,冒号后面是返回值。

多个参数的栗子:

 

1 >>> g = lambda x ,y : x * y
2 >>> g(2, 3)
3 6

 

>>> g = lambda x ,y = 3 : x * y
>>> g(4)
12

 

 

map() 函数

map()函数 接受两个参数,一个是函数 ,一个是序列,map将 传入的函数 依次 作用在 序列的每一个元素上面,并返回一个新的list。

1 >>> print map(lambda x : x*2 , range(6))
2 [0, 2, 4, 6, 8, 10]

filter() 函数 过滤

filter()函数,接受两个参数,一个是函数,一个是序列,返回True和False,根据判断结果,过滤掉不符合条件的元素,返回一个新的list

1 #删除列表中的偶数
2
3 >>> list =[1, 4, 6, 7, 9, 12, 17]
4 >>> def odd(x):
5 return x% 2 == 1
6
7 >>> filter(odd,list)
8 [1, 7, 9, 17]

 

 

练习题:

1. 用lambda表达式 将下面的函数转换成匿名函数

  

1 >>> def fun(x,y= 3):
2 return x * y
1 # lambda x,y = 3: x*y

2.用 filter()和lambda() 快速求出 100 以内的 3的倍数

1 >>> filter(lambda x :x % 3 == 0 ,range(1,100))
2 [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]