Python编程学习10:lambda表达式和filter,map函数的使用

1. lambda 表达式

    (1) 优点:

          a. 在写一些简单函数时,可以省下定义函数的过程,使得代码更加精简 ,同时也简化了代码的可读性

          b. 对于一些比较抽象并且只需要调用一两次的函数,有时候给函数取名字也比较头疼,使用lambda就不用给函数命名了

   (2) 实例:  lambda表达式返回一个函数,如下例,冒号前的x,y是要接收的两个参数,冒号后的表达式x+y是函数要执行的操                      作,并返回该操作的结果。

func = lambda x,y : x+y
print(func(3,5))

8


2. filter 方法:筛选出值为True的元素

    如下例,filter接受两个参数,第一个参数None默认表示筛选前不对列表中的数据做操作,第二个列表参数表示要筛选的对象

filter(None,[1,-1,2,0,True,False])
<filter at 0x26485a09588>

list(filter(None,[1,-1,2,0,True,False]))
[1, -1, 2, True]

  将isOdd函数作为参数传入filter,表示先将列表中的每个元素执行isOdd函数操作,筛选处返回值为True的元素。

def isOdd(x):
    return x % 2
list(filter(isOdd,[1,-1,2,0,True,False]))
[1, -1, True]
list(filter(lambda x : x%2,range(10)))
[1, 3, 5, 7, 9]

3. map 方法

     map方法接收两个参数, func函数表示要进行的操作,iter1为可迭代对象。map(func, iter1)方法可以对每个iter1中的每个应用func进行操作,并返回值。

map(lambda x:x%2,range(10))
<map at 0x26485a2cb00>

list(map(lambda x:x%2,range(10)))
[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]

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



猜你喜欢

转载自blog.csdn.net/zhuzuwei/article/details/80575980