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

  1. map(func, *iterables) --> map object
  2.  
  3. Make an iterator that computes the function using arguments from
  4. each of the iterables. Stops when the shortest iterable is exhausted.
  5. """

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

现在有一个列表

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

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

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

接下来我们分析下map原理

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

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

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

  1. def func(x):
  2. l1 = []
  3. for i in x:
  4. i = i**3
  5. l1.append(i)
  6. return l1

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

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

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

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

map内置函数分析所得到的思路的更多相关文章

  1. map内置函数、lambda表达式、快捷生成想要的列表、filter内置函数

      map函数                             语法 map(function, iterable, ...) 参数 function -- 函数,有两个参数 iterable ...

  2. Python的filter与map内置函数

    简单的记录下这两个函数的功能: list(filter(lambda x : x % 2, range(10))) 上例是返回了0-10之间的所有基数组成的列表.filter()有2个参数,第一个参数 ...

  3. filter和map内置函数

    filter filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回 ...

  4. php内置函数分析之array_diff_assoc()

    static void php_array_diff_key(INTERNAL_FUNCTION_PARAMETERS, int data_compare_type) /* {{{ */ { uint ...

  5. php内置函数分析array_diff()

    PHP_FUNCTION(array_diff) { zval *args; int argc, i; uint32_t num; HashTable exclude; zval *value; ze ...

  6. php内置函数分析之array_combine()

    PHP_FUNCTION(array_combine) { HashTable *values, *keys; uint32_t pos_values = ; zval *entry_keys, *e ...

  7. php内置函数分析之ucwords()

    PHP_FUNCTION(ucwords) { zend_string *str; char *delims = " \t\r\n\f\v"; register char *r, ...

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

    strtoupper(): PHP_FUNCTION(strtoupper) { zend_string *str; ZEND_PARSE_PARAMETERS_START(, ) Z_PARAM_S ...

  9. php内置函数分析之ucfirst()、lcfirst()

    ucfirst($str) 将 str 的首字符(如果首字符是字母)转换为大写字母,并返回这个字符串. 源码位于 ext/standard/string.c /* {{{ php_ucfirst Up ...

随机推荐

  1. 博客搬家了qwq

    呃,其实也不是搬家了,应该算是逐渐过渡qwq \[\color{skyblue}{Orchid} \color{purple}{any}\] 好的,我在学校里并不可以用Hexo,因为deploy总是挂 ...

  2. Omi框架学习之旅 - 插件机制之omi-finger 及原理说明

    以前那篇我写的alloyfinger源码解读那篇帖子,就说过这是一个很好用的手势库,hammer能做的,他都能做到, 而且源码只有350来行代码,很容易看懂. 那么怎么把这么好的库作为omi库的一个插 ...

  3. 如何应用ML的建议-下

    正则化与过拟合(highvariance)和欠拟合(highbias)的关系-部分(五) ML的诊断方法-部分(六) 如何采取下一步-部分(七) 部分(五) 从图中可以看出,正则化项可以用来影响模型函 ...

  4. C# 获取电脑MAC地址,IP地址,物理内存,CPU序列号,硬盘ID..........................

    上班很忙,自己做个记录 代码如下: 需要引入:System.Management 代码如下: using System; using System.Collections.Generic; using ...

  5. 爬虫学习--http请求详解

    上篇博客里面写了,爬虫就是发http请求(浏览器里面打开发送的都是http请求),然后获取到response,咱们再从response里面找到想要的数据,存储到本地. 咱们本章就来说一下什么是http ...

  6. SpringBoot日记——Spring的安全配置-登录认证与授权

    安全是每个项目开发中都需要考虑的,比如权限控制,安全认证,防止漏洞攻击等. 比较常见的安全框架有:Apache的shiro.Spring Security等等,相信用shiro的用户群体更多,而sec ...

  7. SpringBoot日记——ElasticSearch全文检索

    看到标题的那一串英文,对于新手来说一定比较陌生,而说起检索,应该都知道吧. 这个ElasticSearch目前我们的首选,他主要有可以提供快速的存储.搜索.分析海量数据的作用.他是一个分布式搜索服务, ...

  8. WordPress更新时提示无法连接到FTP服务器的解决方案

    这几天在搭建主站的时候,更新wordpress时无法连接到FTP原因服务器 解决方法如下: 在WordPress目录下找到wp-config.php文件并编辑,在最后一行加上: define('FS_ ...

  9. 微信小程序中的组件

    前言 之前做小程序开发的时候,对于开发来说比较头疼的莫过于自定义组件了,当时官方对这方面的文档也只是寥寥几句,一笔带过而已,所以写起来真的是非常非常痛苦!! 好在微信小程序的库从 1.6.3 开始,官 ...

  10. SpringCloud设定Feign底层实现

    1. 概述 版本: spring-boot:  1.5.9.RELEASE spring-cloud: Dalston.SR5 在默认情况下 spring cloud feign在进行各个子服务之间的 ...