Python基础总结之认识lambda函数、map函数、filter() 函数。第十三天开始(新手可相互督促)

今天周日,白天在学习,晚上更新一些笔记,希望对大家能更好的理解、学习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。。。。。。。周末要过去了,洗澡睡觉晚安~~

不懂的朋友可以多敲几遍代码,或者留言评论哦~~~~

 

posted @ 2019-08-04 21:32  我是大刘啊  阅读(261)  评论(0编辑  收藏  举报