map函数

作者: SagaraMisae | 来源:发表于2017-07-08 21:46 被阅读0次

引用自:Crossin的编程教室

来看两个问题:

1. 假设有一个数列,如何把其中每一个元素都翻倍?

2. 假设有两个数列,如何求和?


第一个问题,普通程序员大概会这么写:

lst_1 = [1,2,3,4,5,6]

lst_2 = []

for item in lst_1:

lst_2.append(item * 2)

print lst_2

Python 程序员大概会这么写:

lst_1 = [1,2,3,4,5,6]

lst_2 = [i * 2 for i in lst_1]

print lst_2


今天来说另一种 Python 程序员常用的写法 -- map:

lst_1 = [1,2,3,4,5,6]

def double_func(x):

return x * 2

lst_2 = map(double_func, lst_1)

print lst_2


map 是 Python 自带的内置函数,它的作用是把一个函数应用在一个(或多个)序列上,把列表中的每一项作为函数输入进行计算,再把计算的结果以列表的形式返回。

map 的第一个参数是一个函数,之后的参数是序列,可以是 list、tuple。

所以刚刚那个问题也可以写成:

lst_1 = (1,2,3,4,5,6)

lst_2 = map(lambda x: x * 2, lst_1)

print lst_2

这里原数据改为了元组,函数用 lambda 表达式替代。

map 中的函数可以对多个序列进行操作。最开始提出的第二个问题,除了通常的 for 循环写法,如果用列表综合的方法比较难实现,但用 map 就比较方便:

lst_1 = [1,2,3,4,5,6]

lst_2 = [1,3,5,7,9,11]

lst_3 = map(lambda x, y: x + y, lst_1, lst_2)

print lst_3

map 中的函数会从对应的列表中依次取出元素,作为参数使用,同样将结果以列表的形式返回。所以要注意的是,函数的参数个数要与 map 中提供的序列组数相同,即函数有几个参数,就得有几组数据。

对于每组数据中的元素个数,如果有某组数据少于其他组,map 会以 None 来补全这组参数。

相关文章

  • 系统高阶函数

    主要包括: map 函数 reduce 函数 filter 函数 sorted 函数 map 函数 map(fun...

  • map

    map构造函数 map mapTT;//map默认构造函数: map(constmap &mp);//拷贝构造函数...

  • R. tidyverse,purrr包

    map 函数 map_家族 如: 类似于apply函数 与function(){}自编函数连用 map, map2...

  • 廖雪峰的学习笔记(三)高阶函数

    1.所谓的"高阶函数":把函数对象作为参数的函数.2.示例: map()函数:我们先看map。map()函数接收两...

  • map/reduce

    Python内建了map()和reduce()函数。 1、map()函数map()函数接收两个参数,一个是函数,一...

  • 二十一、map函数相关用法

    数组元素操作map及相关函数 map、flatMap、compactMap函数 filter函数 3 reduce...

  • map

    map()函数: map()会根据提供的函数对指定序列做映射。 语法: map(function, iterabl...

  • python 中的map(转载)

    1 map()函数的简介以及语法: map是python内置函数,会根据提供的函数对指定的序列做映射。 map()...

  • Python高级函数使用

    map的使用:map(function, iterable, ...)   map()函数接收两个参数,一个是函数...

  • JS-day3 +闭包

    map 函数 : 数组利用map函数迭代执行函数,高度抽象化,简化流程 reduce方法 ************...

网友评论

      本文标题:map函数

      本文链接:https://www.haomeiwen.com/subject/uhvjhxtx.html