博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【384】reduce归纳、map映射、filter筛选 的用法
阅读量:5748 次
发布时间:2019-06-18

本文共 1543 字,大约阅读时间需要 5 分钟。

参考:

参考:


 

Map:映射,对于列表的每个元素进行相同的操作

filter:筛选,筛选列表中满足某一条件的所有元素

reduce:归纳,连续操作,连加、连乘等


 

python 3.0以后, reduce已经不在built-in function里了, 要用它就得from functools import reduce.

reduce的用法

reduce(function, sequence[, initial]) -> value

Apply a function of two arguments cumulatively to the items of a sequence,

from left to right, so as to reduce the sequence to a single value.
For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates
((((1+2)+3)+4)+5).  If initial is present, it is placed before the items
of the sequence in the calculation, and serves as a default when the
sequence is empty.

意思就是对sequence连续使用function, 如果不给出initial, 则第一次调用传递sequence的两个元素, 以后把前一次调用的结果和sequence的下一个元素传递给function. 如果给出initial, 则第一次传递initial和sequence的第一个元素给function.

from functools import reducereduce(lambda x,y: x+y, [1, 2, 3])reduce(lambda x,y: x+y, [1, 2, 3], 9)reduce(lambda x,y: x*y, [1, 2, 3, 4])reduce(lambda x,y: x*y, [1, 2, 3, 4], 5)reduce(lambda x,y: x**y, [2, 3, 4])output:615241204096

Example from Ed of COMP9021

question:

For instance, dict1 = {'Lucy' : 'I am a Knight', 'Laser':'I am a Knaves'}

list1 = [(0,0), (0,1), (1,0),(1,1)]

how do I put the output like this:

{'Lucy' : 0, 'Laser':0}

{'Lucy' : 0, 'Laser':1}

{'Lucy' : 1, 'Laser':0}

{'Lucy' : 1, 'Laser':1}

answers:

dict1 = {'Lucy' : 'I am a Knight', 'Laser':'I am a Knaves'}list1 = [(0,0), (0,1), (1,0),(1,1)]answer = [i for i in map(lambda x:{[key for key in dict1][0]:x[0], [key for key in dict1][1]:x[1]}, list1)]for i in answer:	print(i)

 

转载于:https://www.cnblogs.com/alex-bn-lee/p/10570970.html

你可能感兴趣的文章
azure存储压测的问题(农码主观意识太强被坑了)
查看>>
Android Activity生命周期
查看>>
解决ScrollView中嵌套 listView只显示1行的问题
查看>>
centos7配置iptables
查看>>
jQuery剥皮三- data、proxy、event
查看>>
MonGo---安装及其基本操作
查看>>
Nagios 监控实例部署
查看>>
实时视频直播客户端技术盘点:Native、HTML5、WebRTC、微信小程序
查看>>
Microsoft System Center 2012部署(二)
查看>>
<转>CentOS / Redhat: Install KVM Virtualization ...
查看>>
原生android VS 定制android(一)
查看>>
修改Linux系统下的最大文件描述符限制
查看>>
CakePHP 2.x CookBook 中文版 第一章 欢迎
查看>>
Druid 在小米公司部分技术实践
查看>>
LNMP - 常见的502错误
查看>>
配置DNS服务器
查看>>
server2008R2WSUS部署 先决条件
查看>>
Lotus Notes压缩数据库的方法
查看>>
修复Bug好比钓鱼
查看>>
php过滤所有英文中文的标点符号代码
查看>>