python map reduce函数初学

# from collections import Iterator
# from collections import Iterable
# print(isinstance([],Iterator))
# print(isinstance([],Iterable))
# isinstance(iter([]),Iterator)#使用iter函数来把迭代对象变成迭代
# def f(x):
#     return x*x
#
# r=map(f,[1,2,3])
# print(list(r))
# print(list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9])))#map将传入的函数依次作用到序列的每一个元素上
# from functools import reduce
# def fn(x,y):
#     return x*10 + y
# def char2num(s):
#     return{'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s]
# print(reduce(fn,map(char2num,'13579')))#reduce函数,将函数作用在整个序列上
# def is_odd(n):
#     return n%2==1
# list(filter(is_odd,[1,2,4,5,6,9,10,15]))#filter函数,将传入的函数作用于序列的每一个元素,根据其返回结果决定是否保留
# #首字母大写
# str='this is map'
# print('str.capitalize():',str.capitalize())
#课后习题
def normalize(name):
    return name.capitalize()
r=map(normalize,['adam','hanm','hana'])
print(list(r))
from functools import reduce
def prod(L):
    return reduce(lambda x,y:x*y,L)
print(prod([3,5,7,9]))
#map reduce编写str2float函数
def str2float(s):
    def fn(x,y):
        return x*10+y
    n=s.index('.')#index()函数检索小数点的位置
    s1=list(map(int,[x for x in s[:n]]))
    s2=list(map(int,[x for x in s[n+1:]]))
    return reduce(fn,s1)+reduce(fn,s2)/10**len(s2)
print('\'123.4567\'=',str2float('123.456'))

猜你喜欢

转载自blog.csdn.net/qq_34211771/article/details/54946294