当前位置: 首页 > news >正文

Python 常用内置高阶函数

Python 是一门非常优雅的语言,支持函数式编程风格,内置了很多强大的高阶函数工具,能让你用更简洁的方式处理数据、控制流程。

本文将系统介绍 Python 中最常用的一批高阶函数,包括:

  • map()filter()reduce()zip()sort()sorted()
  • 还有一些你可能听说过但没用过的:any()all()enumerate()lambda 表达式、functools.partial()

参考文章:Python 常用内置高阶函数 | 简单一点学习 easyeasy.me

目录

  1. 什么是高阶函数
  2. map():批量转换神器
  3. filter():数据筛选器
  4. reduce():一步步归并(需导入)
  5. zip()
  6. sort()sorted():排序
  7. any()all():布尔判断简化器
  8. enumerate():带索引地遍历
  9. lambda 表达式:快速写个函数
  10. functools.partial():函数参数定制神器
  11. 高阶函数组合使用
  12. 总结

1. 什么是高阶函数

高阶函数(Higher-Order Function)就是可以接收函数作为参数,或者返回一个函数的函数。

Python 中常用的高阶函数,能让你用“操作函数”的方式处理一整组数据,配合 lambda 表达式尤其方便。


2. map():批量转换神器

map(function, iterable)

对序列中的每个元素执行相同的函数操作,返回一个新的可迭代对象。

示例

nums = ["1", "2", "3"]
res = map(int, nums)
print(list(res))  # [1, 2, 3]

3. filter():数据筛选器

filter(function, iterable)

函数返回 True 的保留,False 的丢掉。

示例

nums = [1, 2, 3, 4]
res = filter(lambda x: x % 2 == 0, nums)
print(list(res))  # [2, 4]

4. reduce():一步步归并

需要先导入:

from functools import reduce
reduce(function, iterable)

每次拿两个值相加合并,最终只返回一个值,也就是累加的意思。

示例

res = reduce(lambda x, y: x + y, [1, 2, 3, 4])
print(res)  # 10

5. zip()

zip(iter1, iter2, ...)

把多个列表按位置配对成元组。

示例

names = ["Tom", "Jerry"]
ages = [20, 25]
print(list(zip(names, ages)))  # [('Tom', 20), ('Jerry', 25)]

6. sort()sorted():排序

  • list.sort() 是方法,就地修改原列表
  • sorted() 是函数,返回新列表,不改原数据

示例

nums = [3, 1, 4]
nums.sort()
print(nums)  # [1, 3, 4]nums = [3, 1, 4]
print(sorted(nums))  # [1, 3, 4]

支持自定义排序:

words = ["apple", "pear", "banana"]
res = sorted(words, key=lambda x: len(x))
print(res)  # ['pear', 'apple', 'banana']

7. any()all():布尔判断简化器

这两个函数用来对一组布尔值快速判断:

  • any()只要有一个是 True 就返回 True
  • all()全部为 True 才返回 True

示例

flags = [False, True, False]
print(any(flags))  # Trueprint(all(flags))  # False

适合快速判断多个条件是否成立。


8. enumerate():带索引地遍历

enumerate(iterable, start=0)

常用在 for 循环里,能同时拿到“索引 + 元素”。

示例

words = ["a", "b", "c"]
for i, w in enumerate(words):print(i, w)
# 输出:
# 0 a
# 1 b
# 2 c

也可以设置起始索引:

for i, w in enumerate(words, start=1):print(i, w)

9. lambda 表达式:快速写个函数

匿名函数的语法糖,常用于 map()filter()sorted() 等函数中。

lambda 参数: 表达式

示例:对每个数平方

nums = [1, 2, 3]
res = map(lambda x: x ** 2, nums)
print(list(res))  # [1, 4, 9]

10. functools.partial():函数参数定制神器

可以给函数预先“绑定”一些参数,生成一个新的函数。

示例:固定 int 的进制参数

from functools import partialint2 = partial(int, base=2)
print(int2("1010"))  # 10

类似给函数预设了部分参数,后面调用时就不用再传了。


11. 高阶函数组合使用

这些函数也可以组合使用,像拼积木一样构建你的数据处理逻辑。

示例:取出偶数并平方

nums = [1, 2, 3, 4, 5]
res = map(lambda x: x**2, filter(lambda x: x % 2 == 0, nums))
print(list(res))  # [4, 16]

12. 总结

Python 高阶函数非常适合用在数据处理、函数式编程、简化逻辑等场景。常用函数如下表:

函数功能说明
map()批量应用函数,元素转换
filter()过滤不符合条件的元素
reduce()把一组值归并成一个值
zip()多序列打包成元组
sort()就地排序(列表方法)
sorted()返回新排序列表
any()有一个为真就为真
all()所有为真才为真
enumerate()带索引遍历
lambda 表达式快速写简短函数
functools.partial()固定参数生成新函数
http://www.dtcms.com/a/320249.html

相关文章:

  • RabbitMQ面试精讲 Day 15:RabbitMQ故障转移与数据恢复
  • C++ min循环超超超详细指南
  • WFP DNS 域名解析
  • 深入理解C++模板进阶:非类型参数、特化与分离编译
  • Linux节点创建API与路径对应关系
  • AI日报0807 | GPT-5或今晚1点来袭:四大版本全曝光
  • 什么是 TDengine IDMP?
  • Disruptor 消费者核心:BatchEventProcessor解析
  • 告别复杂配置!cpolar让Prometheus监控突破网络限制
  • 【42】【OpenCV C++】 计算图像某一列像素方差 或 某一行像素的方差;
  • 嵌入式开发硬件——单片机
  • 【列出指定时间段内所有的下单产品】
  • 数据结构(循环顺序队列)
  • RAGAS:检索增强生成系统的无参考评估框架与技术解析
  • 2025年华数杯C题超详细解题思路
  • 哈希表原理与实现全解析
  • 天道20金句
  • Moses工具的配置和小语种平行语料训练SMT完整实现
  • 大模型 Transformer模型(上)
  • Java集合的遍历方式(全解析)
  • 力扣经典算法篇-46-阶乘后的零(正向步长遍历,逆向步长遍历)
  • BGP笔记整理
  • Maven高级:继承与聚合实战指南
  • RS485转Profibus网关在QDNA钠离子分析仪与300PLC通信中的应用解析
  • 【OCCT+ImGUI系列】013-碰撞检测-包围盒Bnd_Box
  • 【入门级-C++程序设计:9、函数与递归-函数定义与调用、形参与实参】
  • RESTful 服务概述:从理念到实践的全面解析
  • Coze开放平台综合文档指南
  • 达梦包含OR条件的SQL特定优化----INJECT-HINT优化方法
  • 最新完整内、外期货量化交易系统C#源码可售