python中abs&map&reduce简介

 更新时间:2018年02月20日 10:48:42   作者:wander-clouds  
map与reduce是两个十分常用的Python内置函数,它们与Hadoop中的MapReduce在某些方面有一定的相似之处。

abs函数

可以把函数本身赋值给变量
>>> f = abs
变量可以指向函数
>>> f = abs
>>> f(-10)
10
abs函数实际上是定义在import builtins模块中的,所以要让修改abs变量的指向在其它模块也生效,要用import builtins; builtins.abs = 10

传入函数
一个函数接收另一个函数作为参数,这种函数就称之为高阶函数。

def add(x, y, f):
return f(x) + f(y)

当我们调用add(-5, 6, abs)时,参数x,y和f分别接收-5,6和abs,根据函数定义,我们可以推导计算过程为:

x = -5
y = 6
f = abs
f(x) + f(y) ==> abs(-5) + abs(6) ==> 11

map

map()函数接收两个参数,一个是函数,一个是Iterable,
map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回

>>> def f(x):
... return x * x
...
>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> list(r)
[1, 4, 9, 16, 25, 36, 49, 64, 81]

map()传入的第一个参数是f,即函数对象本身
通过list()函数让它把整个序列都计算出来并返回一个list
把这个list所有数字转为字符串:

>>> list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
['1', '2', '3', '4', '5', '6', '7', '8', '9']

reduce

reduce把一个函数作用在一个序列[x1, x2, x3, ...]上。
这个函数必须接收两个参数,
reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

把序列[1, 3, 5, 7, 9]变换成整数13579,reduce就可以派上用场:

>>> from functools import reduce
>>> def fn(x, y):
... return x * 10 + y
...
>>> reduce(fn, [1, 3, 5, 7, 9])
13579

相关文章

  • 使用Python实现分别输出每个数组

    使用Python实现分别输出每个数组

    今天小编就为大家分享一篇使用Python实现分别输出每个数组,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python实现定时任务利器之apscheduler使用详解

    Python实现定时任务利器之apscheduler使用详解

    在Python中,还可以用第三方包来管理定时任务,比如celery、apscheduler。相对来说apscheduler使用起来更简单一些,这里来介绍一下apscheduler的使用方法
    2022-10-10
  • Python Loguru日志封装装饰器实现过程

    Python Loguru日志封装装饰器实现过程

    这篇文章主要介绍了Python Loguru日志封装装饰器实现过程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-03-03
  • Python ARP扫描与欺骗实现全程详解

    Python ARP扫描与欺骗实现全程详解

    这篇文章主要介绍了Python 实现ARP扫描与欺骗,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-10-10
  • Django扫码抽奖平台的配置过程详解

    Django扫码抽奖平台的配置过程详解

    这篇文章主要介绍了Django扫码抽奖平台,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Python获取接口请求耗时的方法详解

    Python获取接口请求耗时的方法详解

    你想知道我们请求一个url的时候,握手和请求资源分别占用多长时间么?今天我们就来使用python写个小案例来看看,感兴趣的可以跟随小编一起了解一下
    2023-04-04
  • python实现图片批量压缩

    python实现图片批量压缩

    这篇文章主要介绍了python实现图片批量压缩的方法,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-04-04
  • python爬虫学习笔记之Beautifulsoup模块用法详解

    python爬虫学习笔记之Beautifulsoup模块用法详解

    这篇文章主要介绍了python爬虫学习笔记之Beautifulsoup模块用法,结合实例形式详细分析了python爬虫Beautifulsoup模块基本功能、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-04-04
  • pandas添加新列的5种常见方法

    pandas添加新列的5种常见方法

    pandas为DataFrame格式数据添加新列的方法非常简单,下面这篇文章主要给大家介绍了关于pandas添加新列的5种常见方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • Python实战之看图猜字游戏的实现

    Python实战之看图猜字游戏的实现

    看图猜成语,是考验一个人的反应能力,也考验一个人的右脑思维。据说越聪明的人,这道题的完成率越高。本文就来用Python实现这一经典小游戏,需要的可以参考一下
    2023-02-02

最新评论