map\reduce函数

# 高阶函数map()  两个参数:1.函数 2.Iterable
# map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回
def f(x):
    return x*x
r = map(f,[1,2,3,4,5])
# Iterator是一个惰性序列,因此通过list()函数把整个序列都计算出来并返回一个list
print (list(r))


# 把list所有数字转为字符串
a = list(map(str,[1,2,3,4,5]))
print (a)

# reduce()函数: 两个参数:1.函数 2. 序列
# reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算
#效果如下:reduce(f,[x1,x2,x3,x4]) = f(f(f(x1,x2),x3),x4)

# 对一个序列求和
from functools import reduce
def add(x,y):
    return x+y
a = reduce(add,[1,3,5,7,9])
print (a)

# 求和运算可直接用python的内建函数sum()
a = sum([1,3,5,7,9])
print (a)

# 用reduce将序列[1,3,5,7,9]转换成13579
def fn(x,y):
    return x*10+y
a = reduce(fn,[1,3,5,7,9])
print (a)
# str 转换成int 函数
def fn(x,y):
    return x*10 + y
def char2num(s):
    digits = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
    return digits[s]

print (reduce(fn,map(char2num,'13579')))

# 整理成str2int的函数
DIGITS = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
def str2int(s):
    def fn(x,y):
        return x*10+y
    def char2num(s):
        return DIGITS[s]
    print (reduce(fn,map(char2num,s)))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值