您的位置:首页 > 编程语言 > Python开发

map_reduce的简单运用

2016-01-27 17:16 701 查看
#coding=utf8
'''map,reduce的应用'''
def func(x):
return x**2
print map(func,range(10))
def add(x,y):
return x+y
print reduce(add,[1,3,5,7,9])
#自定义整数字符串转整数
#方法一
def func1(x,y):
return x*10+y
def char2int(c):
dic={'0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9}
return dic[c]
print reduce(func1,map(char2int,'188732'))
#方法二
def str2int(s):
def func(x,y):
return x*10+y
def char2int(c):
dic={'0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9}
return dic[c]
return reduce(func,map(char2int,s))
print str2int('9838737')
#方法三,利用匿名函数
def str2int2(s):
def char2int(c):
dic={'0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9}
return dic[c]
return reduce(lambda x,y:x*10+y,map(char2int,s))
print str2int2('7776')

#练习一
#运用map将列表中的每个单词首字母大写,其它小写
def modWordList(l):
def modWord(w):
str=''
str+=w[0].upper()
str+=w[1:].lower()  #如果w为字符串,则w[1:]的返回类型也是字符串,可以调用lower方法,如果w为元组或列表则会报错
return str
return map(modWord,l)
print modWordList(['ApacHe', 'LiNux', 'pYThon', 'jAvA'])

#练习二
#运用reduce求list中所有数的乘积
def prod(l):
'''求列表中所有数的乘积'''
def mul(x,y):
return x*y
return reduce(mul,l)
print prod([2,2.5,10])


运行结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python