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

map(func, *iterables) --> map objectMake an iterator that computes the function using arguments fromeach of the iterables.  Stops when the shortest iterable is exhausted."""

根据提示,map有一个函数名参数还有个动态参数,意思是将可迭代的对象打散然后把每一个元素传入函数名作为参数运行让后将函数返回值作为新的值映射传入的参数。

现在有一个列表

l1 = [1,2,3,4,5,6],现在需要生成[1, 4, 9, 16, 25, 36]这样的列表,也就是每个元素平方:

首先l1肯定是个可迭代的对象所有我们可以先构思成这样:map(函数名,l1) l1会将每个元素传入函数作为参数。所以我们这样定义这个函数:

def func(x):return x**2#这样l1每遍历一个元素函数func都会返回这个元素的平方#所以就写成了这样:g = map(func,l1)print(list(g))  #[1, 4, 9, 16, 25, 36]

接下来我们分析下map原理

在没接触map前,你会写出下面代码:

def func(x):l1 = []for i in x:i = i**2l1.append(i)return l1#我们定义了以上函数,当你输入一个列表时会返回一个新列表每个元素是之前的平方g=func([1,2,3,4,5)print(g)#[1,4,8,16,25]

这样确实实现了功能,但是如果我现在改变条件说新列表是原来每个元素的3次方,你又改成了这样:

def func(x):l1 = []for i in x:i = i**3l1.append(i)return l1

大家发现了没,其实我改的要求就是 i = i**3这行代码,其实我们可以把这变的条件作为函数,写成i = foo(i),而fun1这个函数为我定义函数的参数传进去,这样我就只需改参数就能实现多个功能:

def func(foo,x):    l1 = []    for i in x:        i = foo(i)        l1.append(i)    return l1def foo(x):return x**2print(func(foo,[1,2,3,4]))

大家会说你不是还是要定义另一个函数传进去,这时匿名函数出来了

def func(foo,x):l1 = []for i in x:i = foo(i)l1.append(i)return l1
print(func(lambda x:x**2,[1,2,3,4]))
print(func(lambda x:x**3,[1,2,3,4]))#这样是不是无论你要我对元列表加减乘除平方或者替换我都只需要改变我传入的函数名参数就行了

转载于:https://www.cnblogs.com/Kingfan1993/p/9519348.html

map内置函数分析所得到的思路相关推荐

  1. 【源码阅读】【苦练基本功】Golang内置函数分析

    Golang package builtin 中内置函数我分为两部分介绍,第一部分为基础类型,第二部分为包含函数.接口,较复杂一些 第一部分 // bool is the set of boolean ...

  2. php内置函数分析之strtoupper()、strtolower()

    strtoupper(): 1 PHP_FUNCTION(strtoupper)2 {3 zend_string *str;4 5 ZEND_PARSE_PARAMETERS_START(1, 1)6 ...

  3. python-(5-3)内置函数-zip locals globals sorted filter map

    文章目录 一. zip() 二. locals() 和 globals() 三. sorted() 四. filter() 和 map() 一. zip() 作用:将多个可迭代的内容进行合并 需求:已 ...

  4. Python基础11-函数式编程与内置函数

    目录 函数即变量 lambda关键字定义匿名函数 高阶函数 内置函数map 内置函数filter 内置函数reduce 内置函数看文档 函数即变量 书接上回,Python里面,函数就是变量,可以被当成 ...

  5. Python学习(十)——高阶内置函数

    内置函数 内置函数 高阶内置函数 abs().sum().round() map() filter() sorted() max().min() 内置函数 内置函数:python提供的,可以直接使用 ...

  6. Python内置函数any()、map()组合运用案例一则

    Python内置函数any()用来测试某个可迭代对象中是否所有对象都等价于True,map()用来把一个函数映射到一个或多个可迭代对象上. 问题描述:测试一个字符串中是否包含指定列表中的某个字符串作为 ...

  7. 笔记十八:python的内置函数有哪些尼?都怎么是使用尼?(map()、reduce()、filter()、lambda()……)

    python的内置函数有很多,你如果和我一样是个初学者,那么学会看这个函数怎么用,需不需要传入参数等问题非常必要,首先尼函数名先打出来,然后按着ctrl键再把鼠标移到函数名位置,发现函数名会变颜色(一 ...

  8. Python 常用内置函数map、zip、filter、reduce、enumerate

    Python 中有许多非常实用的内置函数,通过这些函数我们可以方便的实现某些功能,下面就列举一些常用的内置函数. 1. map() 函数 map() 可以根据提供的函数对指定序列做映射,它接受一个函数 ...

  9. python3 内置函数map 返回的迭代器转为列表

    python3 内置函数map 返回的是迭代器,python2 返回的才是列表, 在python3中想要使用需要把迭代器在转换成列表 list_a = [1, 2, 3, 4, 5]def add(n ...

最新文章

  1. ServiceStack 项目实例 001 建立项目结构
  2. Android 知识点梳理
  3. C 语言编程 — 内存对齐
  4. 调用预训练好的XLnet词向量
  5. openjdk-alpine镜像无法打印线程堆栈和内存堆栈问题
  6. 前有教授被骗千万,后有某重点高校青年教师晒出月薪900的工资条,大学老师工资待遇如何?...
  7. 初一模拟赛(4.20)
  8. Myesclipe+SSH+jsp+mysql+tomcate实现一个简单的CRM客户关系管理系统
  9. 河北2018年职称计算机开始,2018河北职称计算机考试操作题答案(8页)-原创力文档...
  10. 什么是换码符(escape character)?
  11. 万张图片,流畅体验——记一次 Vue 列表渲染
  12. T-sql语句查询执行顺序
  13. Javascript 事件入门
  14. c#:浅克隆和深克隆,序列化和反序列化
  15. json的各种格式的转换
  16. FTP 权限的修改 之CuteFTP问题
  17. 自负是自卑的一种心理表征
  18. 计算机二级vb考试教材,计算机二级考试VB基础题教材.doc
  19. 计算机窗口键,电脑上win是哪个键_电脑windows键是哪个-win7之家
  20. 如何设置无线路由器上网?

热门文章

  1. c++中结构体字符指针成员无法赋值
  2. 使用BeanPostProcessor接口对受管Bean进行预处理
  3. 一文搞定C语言本地变量和全局变量
  4. 盘点“逆市上涨”BZ第一季度回购亮点
  5. 网站架构相关PPT、文章整理(更新于2009-7-15)
  6. 【译】What do machine learning practitioners actually do?
  7. 区块链共识算法 PBFT(拜占庭容错)、PAXOS、RAFT简述
  8. Linux系统中,read文件过程分析
  9. 【问链财经-区块链基础知识系列】 第四十课 港版支付宝的区块链跨境汇款与Ripple、Circle大不同
  10. JZOJ 4307. 【NOIP2015模拟11.3晚】喝喝喝