map/reduce/filter/lambda/sorted函数

本文深入探讨了Python中的高阶函数map(), reduce(), filter()的使用方法及应用场景,包括匿名函数lambda的语法与应用,以及sorted()函数的自定义排序技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

map()接收两个参数,一个是函数f,一个是可迭代对象Iterable.
map将传入的函数依次作用到序列的每个元素并把结构作为新的迭代器Iterator返回。
如:

def f(x):
		return x*x
l=map(f,[1,2,3,4])
list(l)
输出:【1,4,9,16】

又如:用list输出整个序列

list(map(str,[1,2,3,4]))
输出: 【‘1’,‘2’,‘3’,‘4’】

reduce()也是接收两个参数,一个函数,一个序列【x1,x2,x3,…】,将一个函数作用在这个序列上,第一个元素做完运算后,把结果继续和下一个元素做累计运算。
如:

from functools import reduce 
def fn(x,y):
	return x*10+y
reduce(fn,[1,3,5])
输出:135

也可以将二者一起联合使用进行运算.

filter()也接收两个参数,一个函数和一个序列。将函数作用于序列,然后根据返回值是True还是False,决定保留还是丢弃这个元素。(符合函数条件就把值挑出来留下)是一个筛选函数。

lambda匿名函数
语法:lambda 参数:返回值
只能写一行,不要写复杂的,逻辑结束后直接返回数据
注:用__name__查看函数名
如:

 a=lambda x: x*x
 print(a(6))
 print(a.--name--)

sorted() :排序算法
用sorted()排序的关键在于实现一个映射函数
(1)直接对list进行排序
(2)可以接收一个key函数来实现自定义排序。例如按绝对值大小排序:

sorted([36,5,-12,9,-21],key=abs)
输出:【5,-9,-12,-21,36】

(3)对字符串排序。如:忽略大小写排序:

sorted(["bob","about","Zoo","Credit"],key=str.lower)
输出:["about","bob","Credit","Zoo"]

要想反向排序,不需要改key,传入第三个参数即可reverse=True

sorted(["bob","about","Zoo","Credit"],key=str.lower,reverse=True)
输出:【"Zoo","Credit","bob","about"】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值