map函数时python的高级内置函数

语法为:map(function, iterable, ...)

参数:
function -- 函数
iterable -- 一个或多个序列
将function作用于iterable序列中的每一个元素,并将调用的结果返回
主要是为了并行运算,非常高效

1. 一个输入参数,输入为列表

# 1. 一个参数
def map_func(x):
res = x**2
return res
a1 = map(map_func, [1,2,3]) #直接返回的是object,例如 <map object at 0x000001FEF3457438>
print(a1)
print(list(a1)) #强制转换:[1, 4, 9]

2. 一个输入参数,输入为元组

a2 = map(map_func, (1,2,3))
print(a2)

3. 两个输入参数

# 2. 两个参数
def map_func_2(x,y):
res = x+y
return res
a3 = map(map_func_2, [1,2,3],[1,2,3]) #同时从两个序列中取出相同位置的元素,进行运算;但是两个参数不同长度时会报错
print(a3)
print(list(a3)) # 输出为:[2, 4, 6]

4. 使用int等类型函数

# 4. 典型应用:int等类型函数
a4 = map(int, [1.5,2.1,3.0]) #同时从两个序列中取出相同位置的元素,进行运算;但是两个参数不同长度时会报错
print(list(a4)) #输出:[1, 2, 3] a5 = map(int, '') #将字符串元素变成整数
print(list(a5)) #输出:[1, 2, 3, 0, 6]

5. 使用lambda表达式

# 5. 使用lambda函数,x为参数,x**2属于lambda表达式的返回值
a6 = map(lambda x: x ** 2, [1, 2, 3])
print(a6)
print(list(a6)) # 输出:[1, 4, 9]

reduce函数,与map函数类似,注意在Python3中reduce不再是内置函数,而是集成到了functools中,需要:from functools import reduce

函数将一个数据集合(列表,元组等)中的所有数据进行下列操作:用传给 reduce中的函数 function(二元函数,两个参数),先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,依次进行下去直到最后。

用法:reduce(function, iterable[, initializer])

参数:
function -- 函数,有两个参数
iterable -- 可迭代对象
initializer -- 可选,初始参数

1. "减少"为一个值

from functools import reduce
def add_2(x, y):
return x+y
a7 = reduce(add_2, [1,2,3]) #得到的是一个值,依次执行add_2(1,2),对结果和3执行add_2(add_2(1,2),3),有点类似递归运算
print(a7) #输出为:6

2. lambda表达式调用

# lambda函数使用, x,y为参数,x+y为lambda表达式的返回值
a8 = reduce(lambda x, y: x+y, [1,2,3]) #得到的是一个值,先调用参数1,2,然后对结果和3继续使用
print(a8) #输出为:6

3. 减少矩阵维度

# 减少矩阵维度
import numpy as np
tmp = np.mat([[1,2,3],[4,5,6],[7,8,9]])
print(tmp)
# 输出为:
# [[1 2 3]
# [4 5 6]
# [7 8 9]]
a9 = reduce(lambda x,y: x+y, tmp) #实际是:首先[1,2,3]+[4,5,6] = [5,7,9];然后[5,7,9] + [7,8,9] = [12,15,18]
print(a9) # 输出:[[12 15 18]],是(1,3)的矩阵

其中,还有filter函数也与此类似。

参考:

https://baijiahao.baidu.com/s?id=1594702528079035916&wfr=spider&for=pc

https://blog.csdn.net/wxjsjp/article/details/80638696

https://www.runoob.com/python/python-func-map.html

https://www.runoob.com/python/python-func-reduce.html

https://blog.csdn.net/ctan006/article/details/79657678

python的map和reduce函数的更多相关文章

  1. Python中map和reduce函数??

    ①从参数方面来讲: map()函数: map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组).其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数. reduce() ...

  2. python中map、reduce函数

    map函数: 接受一个函数 f 和一个 list .格式:map( f , L),对L中的每个元素,进行f(x)的一个操作. 例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9] ...

  3. Python中map和reduce函数

    ①从参数方面来讲: map()函数: map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组).其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数. reduce() ...

  4. Python【map、reduce、filter】内置函数使用说明(转载)

    转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...

  5. 【转】Python 中map、reduce、filter函数

    转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...

  6. Python自学笔记-map和reduce函数(来自廖雪峰的官网Python3)

    感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. Python内 ...

  7. python Map()和reduce()函数

    Map()和reduce()函数 map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函 ...

  8. Python【map、reduce、filter】内置函数使用说明

    题记 介绍下Python 中 map,reduce,和filter 内置函数的方法 一:map map(...) map(function, sequence[, sequence, ...]) -& ...

  9. Python map,filter,reduce函数

    # -*- coding:utf-8 -*- #定义一个自己的map函数list_list = [1,2,4,8,16] def my_map(func,iterable): my_list = [] ...

随机推荐

  1. WeQuant教程—1.3 利用回测工具降低交易风险

    量化系统投入实际使用之前,人们会希望提前测试交易的效果.这个期间往往涉及代码的改动和参数的调整.最常见的做法是将历史数据输入量化系统,让量化系统根据既定的交易逻辑进行操作,观察和分析交易结果,找到问题 ...

  2. Dev系列控件的AJAX使用Demo

    一.Dev Data Edit控件通用属性以及方法: 属性 1.GetEnabled():返回控件是否为可操作状态 2.GetText():返回控件的Text的值 3.SetEnabled():设置控 ...

  3. ssh连接的原理

    ssh是linux系统中的一个远程连接工具,也是一种网络协议,通过各种加密算法达到安全连接的效果.若能使用ssh连接到另外一台机器上,我们就可以认为是安全的.本节主要介绍的是ssh连接的原理以及ssh ...

  4. 启动Oracle 12c数据库实例

    启动Oracle 12c数据库实例 启动Oracle数据库实例,主要分为两步:第一步,启动监听:第二步,启动数据库实例. 1. 切换到oracle用户- su oracle- cd - source ...

  5. git diff/difftool

    参考好文:使用命令和P4Merge进行diff::https://www.cnblogs.com/cgzl/p/8597066.html git difftool 即可弹出比较工具的界面 哈哈 === ...

  6. docker 学习总结

    Docker 是一个容器工具,提供虚拟环境.解决了软件的环境配置和依赖问题,让软件可以带环境和依赖的安装. Docker 将应用程序与该程序的依赖,打包在一个文件里面.运行这个文件,就会生成一个虚拟容 ...

  7. 池化技术之Java线程池

     https://blog.csdn.net/jcj_2012/article/details/84906657 作用 线程池,通过复用线程来提升性能; 背景 线程是一个操作系统概念.操作系统负责这个 ...

  8. Spark学习(4) Spark Streaming

    什么是Spark Streaming Spark Streaming类似于Apache Storm,用于流式数据的处理 Spark Streaming有高吞吐量和容错能力强等特点.Spark Stre ...

  9. 个人Wiki搭建(Gitbook + GitHub Pages)

    工具选择:Gitbook + GitHub Pages 大概流程: 首先在本地编写md文件,然后生成对应的html文件,最后将这些html文件推送到github对应的gitbook仓库. 具体步骤: ...

  10. 【1】TOPK最小的K个数(多种方法比较)

    (头条) 最小的第K个数也是和这题topK一样的思路 1.全排序  时间复杂度O(nlogn) 2.Partiton思想 时间复杂度O(n)  (因为不需要像快排一样对所有的分段都两两Partitio ...