本博客所有文章采用的授权方式为 自由转载-非商用-非衍生-保持署名 ,转载请务必注明出处,谢谢。
声明:
本博客欢迎转发,但请注明出处,保留原作者信息
博客地址:孟阿龙的博客
所有内容为本人学习、研究、总结。如有雷同,实属荣幸
最近解决两个小问题的时候用到了python的map和reduce函数,简单用法做个记录:
一. map 函数
语法:map(function, iterable,...)
用法:
对列表中的每一个元素应用function函数,并返回对应新的列表
参数:
function -- 函数的引用
iterable -- 一个或者多个序列
返回值:
一个新的列表
实例:
- 对一个列表的所有元素计算平方
def sequare(x):
return x*x
print map(sequare, [1,2,3])
结果为:
[1, 4, 9]
- 将一个数值列表的每个元素转换为字符串之后用'#'连接
print "#".join(map(str, [1,2,3]))
结果为:
1#2#3
- 将两个列表对位的元素相加,并返回新列表
def add_list(x, y):
return x + y
print map(add, [1,2,3], [4,5,6])
结果为:
[5, 7, 9]
二. reduce 函数
语法:reduce(function, iterable[, initializer])
用法:
对列表中的所有元素执行function的进行累积计算,返回最终计算结果
参数:
function -- 函数的引用
iterable -- 列表或者可迭代对象
返回值:
最终的计算结果
实例
- 计算列表所有元素的和
普通方法可以通过for循环遍历即可实现,用reduce只需要简单的一行
def add(x, y):
return x + y
print reduce(add, [1,2,3])
结果为:
6