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