map() 会根据提供的函数对指定序列做映射。
map(function, iterable, …)
在python3版本返回的是一个迭代器
>>> def square(x) : # 计算平方数
... return x ** 2
...
>>> map(square, [1,2,3,4,5]) # 计算列表各个元素的平方
<map object at 0x100d3d550> # 返回迭代器
>>> list(map(square, [1,2,3,4,5])) # 使用 list() 转换为列表
[1, 4, 9, 16, 25]
>>> list(map(lambda x: x ** 2, [1, 2, 3, 4, 5])) # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
>>>
reduce() 函数会对参数序列中元素进行累积。
注意:reduce需要调用functools模块
from functools import reduce
reduce(function, iterable[, initializer])
返回计算结果
from functools import reduce
def add(x, y) : # 两数相加
return x + y
sum1 = reduce(add, [1,2,3,4,5]) # 计算列表和:1+2+3+4+5
sum2 = reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函数
print(sum1)
print(sum2)
Lambda函数是一个小的匿名函数。
Lambda函数可以接受任意数量的参数,但只能具有一个表达式
lambda arguments : expression
x = lambda a : a + 10 # 给a加上10传给变量x
print(x(5))