python的map和reduce函数

本文通过生动的例子介绍了Python中map函数和reduce函数的应用。map函数可以将指定函数应用于序列的每个元素,而reduce函数则将一个二元操作符累加地作用于序列的所有元素,实现简化序列的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是从我的个人技术分享网站里面复制的

一、map函数

map函数接收两个参数,一个数函数,另一个序列,比如list或者tuple,返回的值是一个list,情况下面的例子:


print "老佛爷:小李子,去统计一下宫女们如厕时间多久,超过二十分钟罚200元"
zgc=[15,20,22,30,10,8,3,27]
def WC(t):
	if(type(t)==int or type(t)==float):
		if(t<20):
			return "不罚款"
		else:
			return "罚款200"
	else:
		return "您输入的参数有误,请传入整型或者浮点型的参数"
result=map(WC,zgc)
print "李莲英:喳,经过清点和统计,一号宫女至%d号宫女的罚款情况如下:"%(len(zgc))
for i in result:
	print i 

运行结果:
老佛爷:小李子,去统计一下宫女们如厕时间多久,超过二十分钟罚200元
李莲英:喳,经过清点和统计,一号宫女至8号宫女的罚款情况如下:
不罚款
罚款200
罚款200
罚款200
不罚款
不罚款
不罚款
罚款200


上面的map(WC,zgc)这个map函数就是将WC分别作用于zgc这个list,然后返回一个list,赋值给result

二、reduce函数

reduce把一个函数作用在一个序列(list或者tuple)上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素进行计算,情况下面的例子:

print "语文老师:下面是一位结巴患者说的断断续续的话,元芳,你把他给我一句话复述清楚咯"
zgc=['我是','人见人爱','花见花开的','人间美女','如花妹子']
sm=''
for i in zgc:
	if(sm==''):
		sm=sm+i
	else:
		sm=sm+'...'+i
print sm
def talk(x,y):
	if(type(x)==str and type(y)==str):
		return x+y
	else:
		return "你输入参数的类型有问题"
zgc_1=reduce(talk,zgc)
print "元芳:我的一句话复述是:"
print zgc_1

运行结果如下:
语文老师:下面是一位结巴患者说的断断续续的话,元芳,你把他给我一句话复述清楚咯
我是...人见人爱...花见花开的...人间美女...如花妹子
元芳:我的一句话复述是:
我是人见人爱花见花开的人间美女如花妹子

上面例子中的reduce(talk,zgc)就是先让talk函数对zgc[0]和zgc[1]进行处理,并用出来结果作为另个参数和zgc[2]进行处理,其实reduce(talk,zgc)就是在执行下面这个过程:talk(talk(talk(talk(zgc[0],zgc[1]),zgc[2]),zgc[3]),zgc[4])

我要在线运行一下程序:

1
2
3
#!/usr/bin/python
# -*- coding: utf-8 -*-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值