Python三种常见高阶函数--map、filter、sorted

高阶函数的概念

可以接收函数作为参数的函数

常用:map、filter、sorted

一、map()映射

语法:map(处理函数, 可迭代对象1, 可迭代对象2...)

将可迭代对象中每一个元素依次交给函数处理,返回一个 map 迭代器对象,不会直接得到列表,需要用 list() 转换才能看到结果

1.示例一:单序列

lst = "abc", "xyz", "test"

result = map(lambda x: x.upper(), lst)

print(list(result)) #输出:'ABC', 'XYZ', 'TEST'

lst2 = '1','2','3'

res2 = map(int, lst2)

print(list(res2)) # 1,2,3

2.示例二:多个可迭代对象

lst3 = 1,2,3

lst4 = 100,200,300,400

res3 = map(lambda x,y: x+y, lst3, lst4)

print(list(res3)) # 101, 202, 303

二、filter () 过滤

语法:filter(判断函数, 可迭代对象)

根据函数返回值筛选元素

函数返回 True:保留当前元素,函数返回 False:丢弃当前元素

返回 filter 迭代器,需要list()转换

lst = 1,2,3,4,5,6,7,8,9 #取出奇数,x%2结果为1(True)保留,0(False)丢弃

result = filter(lambda x: x % 2, lst)

print(list(result)) # 1,3,5,7,9

三、sorted()排序

语法:sorted(可迭代对象, key=函数, reverse=False)

  1. 返回全新列表,不会修改原数据
  2. key:指定排序依据;reverse=True降序,False升序 (默认)

和列表.sort()区分:

  1. sorted():生成新列表,原列表不变,返回新列表
  2. .sort():原地修改原列表,返回值为None

1.示例一:多条件排序

需求:负数放前面,正数放后面;负数从大到小,正数从小到大

lst2 = -1, -2, 0, 3, 2, 5, -9, 8, -3

#key 返回元组,元组第 0 项为第一排序条件,第 1 项第二条件

result2 = sorted(lst2, key = lambda x: (x>=0, abs(x)))

print(result2) # -1, -2, -3, -9, 0, 2, 3, 5, 8

2.示例二:字典按 value 排序

d1 = {"a":2, "b":5, "d":3, "c":6}

#按value降序排序

#sorted 不能直接排字典,必须先用.items()得到(key,value)元组序列

result3 = dict(sorted(d1.items(), key=lambda x:x1, reverse=True))

print(result3) # {'c': 6, 'b': 5, 'd': 3, 'a': 2}

相关推荐
知识分享小能手2 分钟前
机器学习教程,从入门到精通,机器学习概述 + Python 语言基础 · 知识点详解(1)
人工智能·python·机器学习
郝学胜-神的一滴19 分钟前
AI 编程智能体 16:从零基础搭建到精细化优化
人工智能·python·算法·语言模型·langchain·pip
迪康Defender27 分钟前
PHP 高危漏洞应急分析:从风险原理到端点侧纵深防护
运维·开发语言·安全·自动化·php·运维开发·远程工作
又蓝32 分钟前
【元宝搜索开发者征文大赛】用 FastAPI + Vue3 做了个 AI 炒股工具,接了六个分析师和腾讯元宝搜索
人工智能·python·ai·fastapi
2601_9669496533 分钟前
为什么不应该把 QuantDash API Key 直接写进公开代码仓库?从 Git 提交历史理解凭证泄露风险
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
在世修行34 分钟前
智学文枢:文科分析引擎
python·ai·pyside·文科分析
智_永无止境35 分钟前
又找到一个纯Java的OCR项目,识别的格式还挺多
java·开发语言·ocr
小灰灰搞电子37 分钟前
Rust+Slint 实现动态流光边框源码分享
开发语言·前端·rust·流光边框
包小黑1 小时前
Python 转 EXE (实用工具)
开发语言·python
全栈练习生1 小时前
DeepSeek 稀疏注意力
python·ai