python中的内置函数里面,有map和reduce两个方法,这两个方法可以非常好的去做一些事情,但是之前都没有用过,下面是关于这两个方法的介绍:

一、map相关

map()会根据提供的函数对指定的序列做映射

具体用法及含义如下:

因为这是python27中,所以会直接返回一个list,如果是python3,则返回迭代器

具体参数:

(1)function参数:函数,可以包含1个或者多个参数,看sequence的个数(备注:操作的内容其实就是sequence里面的每一个元素)

(2)sequence参数:要操作的序列

下面是map的具体用法:

def char2num(s):

return {'0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9}[s]

print map(char2num, '12345')

运行结果是:

[1, 2, 3, 4, 5]

接下来是有两个或者更多参数的情况:

def addmap(x,y,z):

return x+y*z

print map(addmap, [1,2,3], [4,5,6], [1,2,3])

运行结果是:

[5, 12, 21]

二、reduce相关

reduce()的作用是:根据提供的函数,对参数序列中的元素进行累积,比如说提供的函数是加和,则会对参数序列中的所有元素进行加和处理

具体用法及含义如下:

具体参数:

(1)function参数:包含两个参数,是用来进行累加运算的两个参数

(2)sequence参数:要进行操作的序列

下面是reduce的具体用法:

def fn(x,y):

return x*10 + y

print reduce(fn, [1,2,5,7,9])

print fn(fn(fn(fn(1,2),5),7),9)

运行结果是:

12579

12579

从上面的例子中可以看到:

reduce(fn, [1,2,5,7,9]) 其实等价于  fn(fn(fn(fn(1,2),5),7),9)

然后将map和reduce结合起来用的话,可以实现一个str2int的功能:

def str2int(s):

def fn(x,y):

return x*10 + y

def char2num(s):

return {'0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9}[s]

return reduce(fn, map(char2num, s))

print str2int('12386')

运行结果是:

12386

后面再有这种map或者reduce的需要,可以自己实现function,然后结合使用即可

三、lambda

lambda就是匿名函数,不需要函数名,就只有一个表达式,不用写return

比如说对两个元素实现相加的操作,这个可以跟reduce结合使用:

#关于lambda的用法

print reduce(lambda x,y:x+y, ['q', 'e', 'w', 't', 'a'])

或者跟map结合使用:

print map(lambda x, y:x*x+y*y, [1,2,3,4,5], [1,2,3,4,5])

然后运行结果分别如下:

qewta

[2, 8, 18, 32, 50]

【python深入】map/reduce/lambda 内置函数的使用的更多相关文章

  1. python基础12_匿名_内置函数

    一个二分查找的示例: # 二分查找 示例 data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35, 36, ...

  2. Python学习(八) —— 内置函数和匿名函数

    一.递归函数 定义:在一个函数里调用这个函数本身 递归的最大深度:997 def func(n): print(n) n += 1 func(n) func(1) 测试递归最大深度 import sy ...

  3. 【python】dir(__builtins__)查看python中所用BIF(内置函数)

    dir(__builtins__)查看python中所用BIF(内置函数)

  4. 查看python内部模块命令,内置函数,查看python已经安装的模块命令

    查看python内部模块命令,内置函数,查看python已经安装的模块命令 可以用dir(modules) 或者用 pip list或者用 help('modules') 或者用 python -m  ...

  5. python day5 lambda,内置函数,文件操作,冒泡排序以及装饰器

    目录 python day 5 1. 匿名函数lambda 2. python的内置函数 3. python文件操作 4. 递归函数 5. 冒泡排序 6. 装饰器 python day 5 2019/ ...

  6. python补充最常见的内置函数

    最常见的内置函数是: print("Hello World!") 数学运算 abs(-5)                         # 取绝对值,也就是5 round(2. ...

  7. Python基础(七)内置函数

    今天来介绍一下Python解释器包含的一系列的内置函数,下面表格按字母顺序列出了内置函数: 下面就一一介绍一下内置函数的用法: 1.abs() 返回一个数值的绝对值,可以是整数或浮点数等. 1 2 3 ...

  8. python全栈开发-Day13 内置函数

    一.内置函数 注意:内置函数id()可以返回一个对象的身份,返回值为整数. 这个整数通常对应与该对象在内存中的位置,但这与python的具体实现有关,不应该作为对身份的定义,即不够精准,最精准的还是以 ...

  9. python基础之 装饰器,内置函数

    1.闭包回顾 在学习装饰器之前,可以先复习一下什么是闭包? 在嵌套函数内部的函数可以使用外部变量(非全局变量)叫做闭包! def wrapper(): money =10 def inner(num) ...

随机推荐

  1. 线程相关的sleep()、yield()、wait()、join()方法介绍

    1.Thread.sleep()与Thread.yield()都会暂缓当前线程执行,转为执行其他线程(忽略优先级),如果持有锁,则不会释放. 2.Thread.sleep()可以精确指定休眠的时间,而 ...

  2. AD中修改OU下面用户的属性

    第一种方法可行: get-ADuser -searchbase "ou=Wireless,dc=lstech,dc=com" -filter * | set-ADuser -Giv ...

  3. vs2017使用问题

    最近安装了新版本的Visual studio  2017,但是在使用的过程中遇到了这样一个问题.刚启动电脑后,打开vs2017是可以打开的,但是当关掉之后再打开就打不开了,但是任务管理器看可以看到有一 ...

  4. Layout-1相关代码

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  5. linux centos7下mysql安装--韩国庆

    首先我先给大家介绍下MariaDB和mysql的区别. 上图,“MySQL之父”的骨灰级程序员Monty,但是mysql被Oracle收购后,Monty又开始去发展另一条数据库的道路,并且以Monty ...

  6. 自制按钮图标的两种方法: image sprite和svg字体文件

    用image sprite和svg字体文件这两种方法,都能够极大地减少小图形文件的数量, 从而减少服务器请求和带宽需求.提高网页的响应速度. 一.建立SVG字体文件 iconmoon 是一个在线工具, ...

  7. (python基础 函数)

    关键字参数:关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值.使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值 必需参数:必 ...

  8. NumPy基础

    一.NumPy ndarray (一)生成ndarray 表 数组生成函数 函数 描述(默认数据类型是float64) array 将输入数据(序列型对象)转换为ndarray,若不显示的指定数据类型 ...

  9. MySQL(基础技能)

    一.概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access.MS SQL Serve ...

  10. Navicat远程连接不上mysql解决方案

    一.can‘t connect to MySql server on ‘47.93.X.X’ 这是因为mysql端口被防火墙拦截,需用linux执行如下指令: 1.#/sbin/iptables -I ...