Python中重要的内建高阶函数

Python中重要的内建高阶函数

在Python中,filter、sorted、map 和 reduce 是一些内建的高阶函数,用于对可迭代对象进行过滤、排序、映射和累积操作。

filter 函数

  • 语法:filter(function, iterable)

  • 作用:用于过滤可迭代对象中的元素,返回一个由使得 function 返回 True 的元素所组成的迭代器。

  • 示例:

    py 复制代码
    # 过滤出偶数
    numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    result = filter(lambda x: x % 2 == 0, numbers)
    print(list(result))  # 输出 [2, 4, 6, 8, 10]
    py 复制代码
    >>> def f(x) :
    	return True if x % 2 == 0 else False
    
    >>> number = [i for i in range(1, 10)]
    >>> list(filter(f, number))
    [2, 4, 6, 8]

sorted 函数

  • 语法:sorted(iterable, key=key, reverse=reverse)

  • 作用:对可迭代对象进行排序,返回一个新的已排序列表。

  • 示例:

    py 复制代码
    # 对字符串列表按长度排序
    words = ['apple', 'banana', 'kiwi', 'orange']
    result = sorted(words, key=len)
    print(result)  # 输出 ['kiwi', 'apple', 'banana', 'orange']

map 函数

  • 语法:map(function, iterable, ...)

  • 作用:对可迭代对象的每个元素应用一个函数,返回一个由应用函数后的结果组成的迭代器。

  • 示例:

    py 复制代码
    # 对列表中的每个元素求平方
    numbers = [1, 2, 3, 4, 5]
    result = map(lambda x: x**2, numbers)
    print(list(result))  # 输出 [1, 4, 9, 16, 25]

reduce 函数

  • 需要导入:from functools import reduce

  • 语法:reduce(function, iterable[, initializer])

  • 作用:对可迭代对象中的元素进行累积操作,返回一个单一的累积结果。

  • 示例:

    py 复制代码
    from functools import reduce
    
    # 计算列表中所有元素的乘积
    numbers = [2, 3, 4, 5]
    result = reduce(lambda x, y: x * y, numbers)
    print(result)  # 输出 120 (2 * 3 * 4 * 5)
相关推荐
学测绘的小杨7 小时前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
zzzzzz31014 小时前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐14 小时前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
兵慌码乱1 天前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot1 天前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle
顾林海1 天前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱1 天前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
曲幽2 天前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API
python·fastapi·web·translate·goldendict·libretranslate·stardict·pystardict
荣码2 天前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python
兵慌码乱2 天前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理