Python学习笔记(8) ---- map函数+reduce函数+filter函数+sorted()函数

在python中内置了一种函数:map函数。

map函数接受两个参数(函数f,Iterator)返回值为另一个Iterator。
函数可以把参数Iterator中的每一个元素通过参数中的函数f进行计算,把返回值作为一个新的Iterator整体返回。

def f(x):
    return x * x
r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
list(r)
[1, 4, 9, 16, 25, 36, 49, 64, 81]

map函数还可以很方便的转换类型:

n = map(int,'123143')
list(n)
[1, 2, 3, 1, 4, 3]
另一种reduce函数也接收两个参数(函数f,Iterator)。

其中函数f必须可以接收两个参数。运行时函数函数将按顺序计算Iterator两个元素,计算结果和下一个元素继续调用函数f。

def add(x,y):
    return x+y
from functools import reduce
reduce(add,[1,2,3,4,5,6,7,8,9])
45

函数将list里的元素累加了起来。

函数filter同样接收两个参数(函数f,Iterator) 但是filter函数会筛选Iterator(删除某些元素)
def is_odd(n):
    return n % 2 == 1

l = list(filter(is_odd, [1, 2, 3, 4, 5, 6, 10, 15]))
print(l)
[1, 3, 5, 15]

可以判断参数中 函数f 会返回ture或者false,依次计算Iterator如果结果为ture则保留,最后返回筛选后的Iterator。

sorted()函数接受参数形式为: Iterator,key=函数f

sorted()函数可以为Iterator排序。如果添加了参数: key = 函数f 则把Iterator中的元素按照经过函数f计算后的结果排序原Iterator。还可以添加reverse = True 降序 或者reverse = False 升序(默认)
其中key 和 reverse是选填。

a = [1, 34, 4, -3, 48, 10]

print(sorted(a))  #默认排序
[-3, 1, 4, 10, 34, 48]

print(sorted(a, key=abs))  #abs取绝对值后排序
[1, -3, 4, 10, 34, 48]

print(sorted(a, key=abs, reverse = True)) #倒序排序
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值