Python内建函数之lambda表达式、map函数、reduce函数、filter函数用法

lambda表达式

  • 声明匿名函数,参数可以有多个,表达式只能有一个
  • 一般结合map、reduce、filter函数使用
f= lambda x:x**2
print(f(3))

输出:

9

列表推导式

print([i**2 for i in range(10)])

输出:

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

filter函数

filter(function,list)

  • 按照定义的函数过滤掉列表中函数返回值是False的元素
  • 这里的function必须是一个返回布尔值的函数或lambda表达式,list为输入function函数的参数列表,且只能有一个列表
print(list(filter(lambda x:x%2 != 0,range(10))))

输出:

[1, 3, 5, 7, 9]

map函数

map(function,iterable1,iterable2…)

  • 可以接受一个列表参数,一个function
print(list(map(lambda x:x**2,range(1,10))))

输出:

[1, 4, 9, 16, 25, 36, 49, 64, 81]

reduce函数

  • reduce(function,list)
    函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
from functools import reduce
#python3.0以后reduce不再内建在python内,被放入functols中
print(reduce((lambda x,y:x+y),range(1,10)))

输出:

45

猜你喜欢

转载自blog.csdn.net/weixin_39549161/article/details/86657075