021 Python初学笔记--匿名函数、过滤器函数、映射函数

一.匿名函数:python使用lambda关键字创建匿名函数,形式如下:

lambda 函数参数:函数返回值

>>> #普通函数的定义
>>> def fun1(x):
	return x+1

>>> fun1(4)
5

>>> #匿名函数的使用
>>> lambda x:x+1     #定义一个匿名函数
<function <lambda> at 0x0000020BE798C268>
>>> fun2=lambda x:x+1
>>> fun2(3)
4

>>> fun3=lambda x,y:x+y
>>> fun3(3,4)
7

注:为什么使用匿名函数,匿名函数有哪些好处?

  1. 匿名函数在使用完之后会自动删除
  2. Python写一些执行脚本时,使用lambda就可以省下定义函数的过程,比如说我们只需要写个简单的脚本来管理服务器的事件,我们就不需要专门定义一个函数然后再写调用,使用lambda就可以使得代码更加精简。
  3. 对于一些比较抽象并且整个程序执行下来只需要调用一两次的函数,有时候给函数起名字是个比较麻烦的问题,使用lambda就不需要考虑命名的问题了
  4. 简化代码的可读性。由于普通的函数阅读经常要跳到开头def定义部分,使用lambda函数就可以省去这样的步骤。

二.过滤器函数:filter(function or None, iterable):

filter函数有两个参数,第一个参数可以是一个函数,也可以是None;第二个参数是一个可迭代的数据。返回一个过滤器对象

  1. 如果第一个参数势函数的话,把第二个可迭代的数据里的每个元素作为函数的参数进行计算,把返回值为True的参数筛选出来。

  2. 如果第一个参数为None,就把第二个可迭代数据里为True的元素筛选出来。

>>> #filter(function,iterable)第一个参数是函数时
>>> def odd(x):    #定义一个筛选奇数的函数
	return x%2

>>> temp=range(10)
>>> show=filter(odd,temp)
>>> show
<filter object at 0x0000020BE82F62B0>
>>> list(show)
[1, 3, 5, 7, 9]

>>> #filter(None,iterable)第一个参数是None时
>>> show2=filter(None,[2,1,'你好',0,True,False])
>>> list(show2)
[2, 1, '你好', True]

>>> #过滤器函数结合匿名函数一起使用
>>> list(filter(lambda x:x%2,range(10)))
[1, 3, 5, 7, 9]

三.映射函数:map(func, *iterables):

  1. 第一个参数是函数,第二个参数是一个可迭代的序列。

  2. 功能是将序列的每一个元素作为函数的参数进行运算加工,直到可迭代序列的每个元素都加工完成,返回所有加工后的元素组成的新序列。

>>> list(map(lambda x:x+3,[1,2,8]))
[4, 5, 11]
>>> list(map(lambda x:x+3,(1,2,8)))
[4, 5, 11]
>>> list(map(lambda x:x*2,range(10)))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

猜你喜欢

转载自blog.csdn.net/beautiful77moon/article/details/87477029
今日推荐