今天周日,白天在学习,晚上更新一些笔记,希望对大家能更好的理解、学习python~
lambda函数,也就是大家说的匿名函数。它没有具体的名称,也可以叫做一句话函数,我觉得也不过分,大家看下代码,来体会下一句话函数(lambda)。
它的格式:
关键字lambda 后面是参数,可以是一个或多个。紧接冒号,然后后面是表达式。
1 c = 5 2 a = lambda c,a = 12:a+c #格式:关键字lambda 后面是参数,可以是一个或多个。紧接冒号,然后后面是表达式。 3 print(a(c)) #调用lamabda匿名函数,然后传入变量 c
怎么样,整个lambda匿名函数,从定义函数,到参数再到表达式,是在一行代码就可以做完的事儿,所以是不是有些时候比def定义函数要方便的多。
1 c = 5 2 def a(c,a=12): 3 a += c 4 print(a) 5 a(c)
自己可以对比def和lambda两种形式,有时候简单的表达式,完全可以使用匿名函数lambda函数,在功能比较复杂的时候可以继续使用def定义函数哦~~
接下来我们再看下map函数的使用,man函数有两个参数,第一个参数是:函数,第二个 参数是:可迭代的数据对象。map可以使,可迭代的数据对象中的元素,每个元素,同时做相同的事情,我们看下代码:
1 a = [1,2,3,4] 2 def add(a): 3 return a + 100 #让列表中的每个元素加100,然后返回新的列表 4 5 print(list(map(add,a))) #注意:map函数,在Python 3.几的版本 返回迭代器,所以需要在前面加list()函数进行转换
重点说明:
1、map()中的参数,函数可以是自定义函数,也可以是内置函数。
2、第二个函数需要是可迭代的数据,比如列表,元组,字典。
3、map()这个函数的作用是,将其它函数作为参数,让可迭代的参数,数据中的每个元素,在其它函数内执行一遍。
4、map函数,在Python 3.几的版本 返回迭代器,所以需要在前面加list()函数进行转换,如果你是其他类型,就进行相应的转换。
1 print(list(map(lambda a:a+100,a)))
上面的小案例,我们也可以用map函数和lambda函数一起写。是不是更容易理解了呢?
最后再认识一个:filter() 函数,它可以用于过滤序列,过滤掉不符合条件的元素,把符号条件的元素组合新的列表返回给你。filter()函数也有两个参数,第一个参数:是函数,第二个参数:是序列;将序列中的每个元素作为参数传入给函数进行过滤判断。将返回True的元素值放到新的列表中。
1 #过滤出列表中大于3的元素 2 a = [1,2,3,4,5] 3 4 def add(a): 5 return a>3 #将每个元素进行过滤判断 6 print(list(filter(add,a))) #将序列中的每个元素作为参数传入给函数进行过滤判断。将返回True的元素值放到新的列表中。
同样我们也可以结合lambda()函数:
filter()函数返回的也是迭代器,所以需要在前面加list()函数进行转换,如果你是其他类型,就进行相应的转换。
1 a = [1, 2, 3, 4, 5] 2 print(list(filter(lambda b:b>3,a)))
hhh。。。。。。。周末要过去了,洗澡睡觉晚安~~
不懂的朋友可以多敲几遍代码,或者留言评论哦~~~~