• 转自:https://www.aliyun.com/jiaocheng/444967.html?spm=5176.100033.1.13.xms8KG
    • 摘要:Map,Filter和Reduce三个函数能为函数式编程提供便利。通过实例一个一个讨论并理解他们。Mapmap会将一个函数映射到一个输入列表的所有元素上。这是它的规范:规范:map(function_to_apply,list_of_inputs)大多数时候,我们要把列表中的所有元素一个个的传递给一个函数,并收集输出。比方说:items=[1,2,3,4,5]squared=[]foriinitems:squared.append(i**2)Map可以让我们用一种简单而漂亮的
    • Map,Filter和Reduce三个函数能为函数式编程提供便利。通过实例一个一个讨论并理解他们。

      Mapmap会将一个函数映射到一个输入列表的所有元素上。这是它的规范:规范:map(function_to_apply,
      list_of_inputs)大多数时候,我们要把列表中的所有元素一个个的传递给一个函数,并收集输出。比方说:items = [1, 2,
      3, 4, 5]squared = [ ]for i in items:
      squared.append(i**2)Map可以让我们用一种简单而漂亮的多的方式来实现。items = [1, 2, 3, 4,
      5]squared = list(map(lambda x : x**2,
      items))大多数时候,我们使用匿名函数(lambdas)来配合map。 map不仅可以用于一列表的输入,我们甚至可以用于一列表的函数def
      multiply(x): return (x*x)def add(x): return (x+x)funcs =
      [multiply, add]for i in range(5): value = map(lambda x: x(i), funcs)
      print(list(value))# Output:# [0, 0]# [1, 2]# [4, 4]# [9, 6]# [16,
      8]
      Filter顾名思义,filter过滤列表中的元素,并且返回一个由所有符合要求的元素所构成的列表。符合要求即函数映射到该元素时返回值为Truenumber_list
      = range(-5, 5)less_than_zero = filter(lambda x : x<0,
      number_list)print list(less_than_zero)#output: [-5, -4, -3, -2,
      -1]这个filter类似一个for循环,但是它是一个内置函数,并且更快。
      Reduce当需要对一个列表进行一些计算并返回结果时,reduce是一个很有用的函数。举个例子,当你需要计算一个整数列表的乘积时。通常在python中,你可能会使用基本的for循环来完成这个任务。product
      = reduce((lambda x, y: x * y), [1, 2, 3, 4])# output: 24
      这里你能体会到了reduce与map的区别了吗,如果不能我们来个leetcode小算法题来体会一下题目:Given
      an array of integers, every element appears twice except for one. Find
      that single
      one.题目的大意应该好懂,就是有个数组,里面的数都出现了两次除了有一个只出现了一次,找出那个只出现了一次的数。拿到这个题目啊,我就想到了用python的内置collections,有一个Counter()函数,代码如下:def
      singleNumber1(nums): a = Counter(nums) for i in set(nums):
      if a[i] == 1: return
      i上面的几行代码确实可以完成题目,但是如果说你没有想到counter()函数呢?还有一个办法就是异或!异或这个性质真的超好用啊!一行解决问题:import
      operatordef singleNumber2(nums): return reduce(operator.xor,
      nums)这里用到了reduce,一行搞定,不得不感慨python的牛逼啊~

Map,Filter和Reduce的更多相关文章

  1. Python Map, Filter and Reduce

    所属网站分类: python基础 > 函数 作者:慧雅 原文链接: http://www.pythonheidong.com/blog/article/21/ 来源:python黑洞网 www. ...

  2. [译]PYTHON FUNCTIONS - MAP, FILTER, AND REDUCE

    map, filter, and reduce Python提供了几个函数,使得能够进行函数式编程.这些函数都拥有方便的特性,他们可以能够很方便的用python编写. 函数式编程都是关于表达式的.我们 ...

  3. Map, filter and reduce

    To add up all the numbers in a list, you can use a loop like this: Total is initialized to 0. Each t ...

  4. Python之内建函数Map,Filter和Reduce

    Python进阶 map,filter, reduce是python常用的built-in function. 且常与lambda表达式一起用. 其中: map 形式:map(function_to_ ...

  5. js Array 中的 map, filter 和 reduce

    原文中部分源码来源于:JS Array.reduce 实现 Array.map 和 Array.filter Array 中的高阶函数 ---- map, filter, reduce map() - ...

  6. python库函数Map, Filter and Reduce的用法

    python中有三个函数式编程极大的简化了程序的复杂性,这里就做一下讨论和记录. 一 Map:应用在链表输入所有元素的函数,它的格式如下所示: map(function_to_apply, list_ ...

  7. [Python学习笔记-002] lambda, map, filter and reduce

    1. lambda lambda, 即匿名函数,可以理解为跟C语言的宏类似.例如: >>> max = lambda x, y: x if x > y else y >& ...

  8. python3的map(),filter()和reduce()函数总结

    这三个都是内置的常用高阶函数(Higher-order function),用法如下: map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把 ...

  9. python的高阶函数(map,filter,sorted,reduce)

    高阶函数 关注公众号"轻松学编程"了解更多. 1.MapReduce MapReduce主要应用于分布式中. 大数据实际上是在15年下半年开始火起来的. 分布式思想:将一个连续的字 ...

随机推荐

  1. yum安装Apache,Mysql,PHP

    用yum安装Apache,Mysql,PHP.  用yum安装Apache,Mysql,PHP. 2.1安装Apache yum install httpd httpd-devel 安装完成后,用/e ...

  2. JUC组件扩展(二)-JAVA并行框架Fork/Join(二):同步和异步

    在Fork/Join框架中,提交任务的时候,有同步和异步两种方式. invokeAll()的方法是同步的,也就是任务提交后,这个方法不会返回直到所有的任务都处理完了. fork方法是异步的.也就是你提 ...

  3. hdu1243 最长公共子序列(LCS)

    原题地址 题目分析 这道题基本上是在普通LCS问题上的一点小小的变形,由求LCS的长度,改为求LCS的权值.架构还是不变的.可作为LCS问题的模板题.时间复杂度O(N^2). 注意 题目中的字母都是小 ...

  4. hdu 1711 Number Sequence KMP 基础题

    Number Sequence Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  5. [Android]Volley源代码分析(叁)Network

    假设各位看官细致看过我之前的文章,实际上Network这块的仅仅是点小功能的补充.我们来看下NetworkDispatcher的核心处理逻辑: <span style="font-si ...

  6. Oracle之函数concat、lpad

    一.引言 程序测试需要生成大量的测试数据,且测试数据有主键,主键自增,于是决定用存储过程来实现,经过半天的查资料终于完成了,记录之,学习之 二.存储过程 格式: CREATE PROCEDURE re ...

  7. IPC之共享内存

    man 7 shm_overview shm_overview - Overview of POSIX shared memory. 同样,SystemV实现的共享内存是旧的机制,但应用广泛:Posi ...

  8. Nginx指令概述

    指令概述 配置指令是一个字符串,可以用单引号或者双引号括起来,也可以不括.但是如果配置指令包含空格,一定要引起来. 指令参数 指令的参数使用一个或者多个空格或者TAB字符与指令分开.指令的参数有一个或 ...

  9. ssh密码登陆的原理,密码的公私钥和sshkey的不是一回事

    密码登录的原理: 密钥加密: 创建分发密钥.分发到服务端的ssh-copy-id的本质是拷贝公钥到对面服务器的,authorized_keys文件下就会多了一个密钥文件信息.就会被拷贝入下面. 客户端 ...

  10. 转!sqlite3.OperationalError) no such table- users [SQL- 'SELECT users.id AS users_id, users.email AS u

    在注册新用户的时候报错: (sqlite3.OperationalError) no such table: users [SQL: 'SELECT users.id AS users_id, use ...