Map/Reduce/Filter/Sorted函数

1.map()
    map接受两个参数,一个是函数,一个是Iterable, map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterable 返回。
    看一个例子,一个计算list中每一个元素的平方的方法:
    首先定义一个元素级的计算平方值的函数,
            def f(x):
                return x*x
    对于任意一个数值型的list:
            r = map(f, list)
    以上就是map的用法,map作为一个高阶函数,事实上它抽象了运算规则,这里的函数可以是任意复杂的函数。

2.reduce()
    reduce 必须接收两个参数,与map类似,第一个参数表示要在第二个参数上的运算,第二个参数是一个序列,reduce把结果继续喝序列的下一个元素做累积计算。
    效果如下:
    redude(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
    举一个将字符串转化为整数的例子:
        
from functools import reduce

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]
    return reduce(fn, map(char2num, s))

3.filter()
    filter也接收一个函数和一个序列,filter()把传入的函数依次作用于每一个元素,然后根据返回值是True还是False决定是保留还是丢弃该元素。
    看一个删掉一个序列中的空字符串的例子:
    def not_empty(s):
          return s and s.strip()
    list(filter(not_empty, [s1, s2, s3, s4]

4.sorted()
    sorted 可以对list排序
        sorted([x1, x2, x3, x4])
    它还可以接收一个key函数来实现自定义的排序,如按绝对值大小排序:
    
sorted([36, 5, -12, 9, -21], key=abs)
—>[5, 9, -12, -21, 36]
    key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序。如果进行反向排序,则可以传入第三个参数:reverse=True

注:本文内容为观看廖雪峰的python教程后的记录和总结,教程的地址为:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014317852443934a86aa5bb5ea47fbbd5f35282b331335000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值