python中filter(),map()和reduce()的用法及区别
先看filter()方法
print(list(filter(lambda n : n % 2 == 1, range(20))))
# 结果 [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
这里如果用filter的话,说明匿名函数lambda给出的是个筛选条件,从1到19中筛选出奇数来。
filter将传入的函数依次作用到序列的每个元素,True则返回 False则不返回。
再看map()方法
print(list(map(lambda n : n % 2 == 1, range(20))))
# 结果 [False, True, False, True, False, True, False, True, False,
True, False, True, False, True, False, True, False, True, False, True]
用map的话,就好像变成了它判断对错的条件,只打印true和false。
print(list(map(lambda x: x + 1, range(10))))
# 结果 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
map一般的用法,参数有一个函数一个序列,将右边的序列经过左边的函数变换,生成新的序列。
最后看reduce()方法
reduce是一个累加函数,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算。
这个函数并不是很常用,在python3中已将其从全局空间移除。
现被放置在functools的模块里,用之前需要引入 from functools import reduce
from functools import reduce my_reduce = reduce(lambda x, y: x + y, range(10))
print(my_reduce)
# 结果是45 是将0到9相加
reduce的另外一个用法,列表去重
ids = [1,4,3,3,4,2,3,4,5,6,1]
func = lambda x,y:x if y in x else x + [y]
reduce(func, [[], ] + ids)
python中filter(),map()和reduce()的用法及区别的更多相关文章
- Python 中的map、reduce函数用法
#-*- coding:UTF-8 -*- #map()函数接受两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回 def f(x): retu ...
- python中的map、reduce、filter、sorted函数
map.reduce.filter.sorted函数,这些函数都支持函数作为参数. map函数 map() 函数语法:map(function, iterable, ...) function -- ...
- Python中的map( )和reduce( )
1.变量可以指向函数,也可以使用变量和参数的形式完成函数调用. 2.那么函数名是什么呢?函数名其实就是指向函数的变量!对于abs()这个函数,完全可以把函数名abs看成变量,它指向一个可以计算 ...
- Python 中的map和reduce学习笔记
map和reduce都是Python中的内置函数 map函数接受两个参数,第一个参数是函数,第二个参数是列表,将函数依次作用于列表中的元素,并返回一个元素 reduce同样以函数和列表作为参数,区别在 ...
- Python中 filter | map | reduce | lambda的用法
1.filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tupl ...
- Python中的map和reduce函数简介
①从参数方面来讲: map()函数: map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组).其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数. reduce() ...
- python之lambda、filter、map、reduce的用法说明
python中有一些非常有趣的函数,面试的时候可能会遇到.今天也来总结一下,不过该类的网上资料也相当多,也没多少干货,只是习惯性将一些容易遗忘的功能进行整理. lambda 为关键字.filter,m ...
- python中filter、map、reduce的区别
python中有一些非常有趣的函数,今天也来总结一下,不过该类的网上资料也相当多,也没多少干货,只是习惯性将一些容易遗忘的功能进行整理. lambda 为关键字.filter,map,reduce为内 ...
- python之lambda、filter、map、reduce的用法说明(基于python2)
python中有一些非常有趣的函数,面试的时候可能会遇到.今天也来总结一下,不过该类的网上资料也相当多,也没多少干货,只是习惯性将一些容易遗忘的功能进行整理. lambda 为关键字.filter,m ...
随机推荐
- NSIS 资料
官方 http://nsis.sourceforge.net/Main_Page NSIS官方插件全集 http://az.eliang.com/aq_2013041703.html NSIS 衿华客 ...
- C# winform pictureBox如何突出显示,放大并给pictureBox边框变色
PictureBox old = null; private void pictureBox2_Click(object sender, EventArgs e) { PictureBox p = ( ...
- Android跑指定包Monkey脚本
Android跑指定包Monkey脚本 adb shell monkey –p com.android.mms --throttle 1000 -v -v -v -s 1 --ignore-secur ...
- 8 -- 深入使用Spring -- 4...1 为什么需要AOP
8.4.1 为什么需要AOP AOP专门用于处理系统中分布于各种模块(不同方法)中的交叉关注点的问题,在Java EE应用中,常常通过AOP来处理一些具有横切性质的系统级服务,如事务管理.安全检查.缓 ...
- 【RF库Collections测试】Set List Value
Name:Set List ValueSource:Collections <test library>Arguments:[ list_ | index | value ]Sets th ...
- 学习下新塘M0芯片的下载方法
编程方式多种多样,解释这几种方式的原理,方便做后续的回答: 一.脱机 脱机的意思就是脱离PC机,有很多芯片必须连接PC才能烧录,比如某些FPGA芯片.MCU芯片.NAND Flash芯片等.脱机和在线 ...
- Git和GitHub入门基础
-----------------------------------------//cd F:/learngit // 创建仓库git init // 在当前目录下创建空的git仓库------- ...
- lua总则
lua官方英文文档:http://www.lua.org/manual/5.2/ lua中国开发者网址:http://bbs.luaer.cn/ <lua程序设计(第二版)>(闭合函数和闭 ...
- gcc的选项
-g: 是一个编译选项,即在源代码编译的过程中起作用,让gcc把更多调试信息(也就包括符号信息)收集起来并将存放到最终的可执行文件内. -rdynamic: 却是一个 连接选项 ,它将指示连接器把 ...
- Qt下libusb-win32的使用(二)批量读写操作
一.概述 学习libusb-win32的使用.使用批量传输方式与USB开发板进行数据读.写操作.上位机使用Qt做界面, 使用USB开发板的端点2作为批量传输端点. 二.实现 代码比较简单,直接给出,如 ...