python中lambda表达式的使用以及两个BIF即filter()和map()的使用

版权声明: https://blog.csdn.net/qq_41992047/article/details/82903518

1.lambda表达式

作用:在用python写一些执行脚本时,使用lambda就可以省下定义函数过程,比如我们只是需要写一个简单的脚本来管理服务器时间,我们就不需要专门定义一个函数然后再写调用,使用lambda就可以使的代码更加简洁

对于一些比较抽象并且整个程序使用下来只需要调用一两次的函数,有时候给函数起个名字也是比较头疼的问题,使用lambda就不需要考虑命名的问题了

简化代码可读性,由于普通的函数阅读经常要跳到开头def定义部分,使用lambda函数可以省去这样的步骤。

例如

用函数来写:    >>> def ds(x):

                           return 2*x+1

                              >>> ds(5)
                                   11

 用lambda表达式来写:                            >>> g = lambda x:2*x+1
                                                                    >>> g(5)
                                                                    11

2.filter()的使用

      可以称为过滤器,用法:

filter(function or None,iterable)如果第一个参数是函数的话,则将第二个可迭代数据里的每个元素作为函数的参数进行计算,把返回true的值给筛选出来,并为一个列表,如果第一个参数是None,则将第二个参数里面的true的值筛选出来

例:>>> filter(None,[1,0,False,True])
        <filter object at 0x0000020C12F43AC8>
         >>> list(filter(None,[1,0,False,True]))
         [1, True]

>>> def odd(x):
    return x%2

>>> temp=range(10)
>>> show=filter(odd,temp)
>>> list(show)
[1, 3, 5, 7, 9]
>>> list(filter(lambda x:x%2,range(10)))
[1, 3, 5, 7, 9]

3.map()的使用

意思为映射,有两个参数,一个是函数,一个可迭代的序列,该BIF的功能是将序列的每一个元素作为函数的参数进行运算加工,直到可迭代序列的每个元素都加工完毕,返回所有加工后的元素构成新序列

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

猜你喜欢

转载自blog.csdn.net/qq_41992047/article/details/82903518