python学习笔记之map()与reduce()的用法

python学习笔记之 map()与reduce()的用法

在python中
map()是将数据分散
reduce是将数据合并

map()与reduce()的应用实例

from functools import reduce
#mapreduce
"""
map()是将数据分散
reduce是将数据合并

"""
#python 内置了map()  or  reduce()

#map()
#原型 map(fn, lsd)
#参数1是函数
#参数2 是序列
#功能: 将传入的函数一次作用在序列中的每一个元素,并把结果作为新的Iterator返回

def chr2int(chr):
    return {"0":0, "1":1, "2":2, "3":3, "4":4, "5":5, "6":6, "7":7, "8":8, "9":9}[chr]

list1 = ["2", "1", "6", "5"]

res = map(chr2int, list1)

print(list(res))
#[chr2int(2), chr2int(1), chr2int(6), chr2int(5)]

#将整数元素的序列,转为字符串型
#[1,2,3,4]->["1", "2", "3", "4"]

ss = map(str, [1,2,3,4])
print(list(ss))

#reduce(fn, lsd)
#参数1为函数
#参数2 是列表
#功能: 一个函数作用在序列上,这个函数必须接受两个参数,reduce把结果继续和序列的下一个元素累计运算
#reduce(f, [a,b,c,d])
#f(f(f(a, b),c),d)类似递归

def mysum(x, y):
    return x+y
list2 = [1,2,3,4]
sum = reduce(mysum, list2)
print(sum)
#将字符串转成对应的字面量数字

def str2int(str):
    def fc(x,y):
        return x*10 + y
    def fs(chr):
        return {"0":0, "1":11, "2":22, "3":34, "4":44, "5":55, "6":66, "7":77, "8":88, "9":99}[chr]
    return reduce(fc, map(fs, list(str)))
str = ['1', '2','3','4']
a = str2int(str)
print(a)
print(type(a))

运行结果

[2, 1, 6, 5]
['1', '2', '3', '4']
10
13584
<class 'int'>

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桓木头有两个旋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值