A-A+

python map reduce学习笔记

2016年09月13日 16:47 学习笔记 暂无评论 阅读 263 views 次

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】

最近在自学PYTHON ,就随手做个笔记吧。。。 也希望同学们好好学习记录。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
 
from functools import reduce
 
#利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']
def normalize():
    LS = ['adam', 'LISA', 'barT']
    def ss(x):
        return x[:1].upper()+x[1:].lower()
    print(map(ss, LS))
    pass
#Python提供的sum()函数可以接受一个list=[3, 5, 7, 9]并求和,请编写一个prod()函数,可以接受一个list并利用reduce()求积
def prod():
    def xji(x, y):
        return x*y
    llsst = [3, 5, 7, 9]
    print(reduce(xji, llsst))
    pass
#利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456:
def str2float():
    str1 = '123.456'
    def strs(s):
        return float({'0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9}[s])
    str2 = str1.split('.')
    def f1(x,y):
        return x*10+y
    def f2(x,y):
        return x/10+y
    print (reduce(lambda x, y:x*10+y, map(strs, str2[0])) + reduce(f2, map(strs, str2[1])[::-1])/10)
    pass
 
if __name__=='__main__':
    normalize()
    prod()
    str2float()
标签:

给我留言