博客
关于我
Python中特殊函数和表达式 filter,map,reduce,lambda
阅读量:797 次
发布时间:2023-03-09

本文共 1520 字,大约阅读时间需要 5 分钟。

Python中的Filter、Map、Reduce与Lambda函数

在Python编程中,filter(过滤)、map(映射)、reduce(归纳)以及lambda(匿名函数)是非常实用的高阶函数,它们能够帮助我们更高效地处理数据。以下将从这些函数的基本原理到实际应用案例进行详细解析。

1. Filter(过滤)

Filter函数的作用是根据提供的函数逻辑对序列中的项进行筛选。传入的函数可以是任意函数或None。如果传入的是函数,则按照函数返回值是否为True来保留或剔除对应的序列项。如果传入None,则默认筛选出True值的项目。

示例代码:

def findPositiveNum(num):    return num > 0list = {2, 1, 3, -2, 0, 12, 5, -9}print(list(filter(findPositiveNum, list)))

返回结果:

[1, 2, 3, 5, 12]

功能解释:

  • Filter函数的核心在于接收一个函数和一个序列,然后对序列中的每一个项应用函数,保留返回值为True的项目。
  • 如果序列是字符串或元组,返回类型将保持不变,否则返回列表。

2. Map(映射)

Map函数的主要作用是将序列中的每一个项目传递给指定的函数,然后返回结果组成的新序列。如果多个序列被传入,函数将接收这些序列对应位置的项。如果函数为None,则直接返回序列本身。

示例代码:

def multiValue(num):    return num ** 2list1 = {1, 3, 5, 7, 9, 11}print(list(map(multiValue, list1)))

返回结果:

[1, 9, 25, 49, 81, 121]

功能解释:

  • Map函数的功能非常灵活,常用于数据转换或处理,例如将字符串列表转换为字典或其他数据类型。
  • 如果多个序列被传入,函数将返回一个由多个序列对应位置项组成的元组或列表。

3. Reduce(归纳)

Reduce函数的作用是将序列中的项逐步传递给一个二元函数,累积处理,最终返回一个单一值。函数将从序列的第一个项目开始,依次处理后续项目。如果初始值被传入,则作为初始值使用。

示例代码:

def addNum(num1, num2):    return num1 + num2list2 = {1, 2, 3, 4, 5, 6}print(reduce(addNum, list2))

返回结果:

21

功能解释:

  • Reduce函数的核心在于将序列中的所有项按照某种规则累积计算,最终得到一个单一的结果。
  • 如果序列为空且没有初始值,会抛出TypeError错误。

4. Lambda(匿名函数)

Lambda函数是一种无需命名的函数,可以直接在表达式中使用。它在数据处理和高阶函数中尤为常见,能够简化代码并提高效率。

示例代码:

addnum = lambda x, y: x + yprint(addnum(1, 2))multiNum = lambda x: x ** 2print(multiNum(5))

返回结果:

3325

功能解释:

  • Lambda函数的优势在于它能够在不命名的情况下定义函数,简化了代码结构。
  • 传入多个序列时,可以同时处理多个数据源,提高处理效率。

总结

以上四个函数在Python中各有特点,filter用于筛选,map用于映射,reduce用于归纳,lambda用于匿名函数定义。它们共同构成了Python处理数据的强大能力。在实际开发中,可以根据需求灵活运用这些函数,以提高代码的可读性和效率。

转载地址:http://rplfk.baihongyu.com/

你可能感兴趣的文章
python利用pytorch库导出图像分割算子
查看>>
python利用pyshark监听网卡来抓包其中pyshark中摸索的一些可用参数
查看>>
python利用excel分析过杀漏失
查看>>
python判断汉字数目
查看>>
python判断文件是空的,如果是空的,就删除
查看>>
python判断密码是否正确_python密码判断是否符合要求的方法
查看>>
python判断字符串包含中文_Python 判断字符串是否包含中文
查看>>
python删除第一行_Python 乱码指北:一行删掉根目录
查看>>
Python删除列表元素的三种方法
查看>>
python初步学习-python数据类型-集合(set)
查看>>
python列表生成字典_Python中将字典转换为列表的方法
查看>>
python列表对应元素合并为列表及判断一个列表是几维
查看>>
python+flask计算机毕业设计骨科门诊患者档案管理系统(程序+开题+论文)
查看>>
python+flask计算机毕业设计高校体测管理系统的设计与实现(程序+开题+论文)
查看>>
python+flask计算机毕业设计高校体育赛事系统(程序+开题+论文)
查看>>
python+flask计算机毕业设计高校危化品管理系统(程序+开题+论文)
查看>>
python+flask计算机毕业设计高校校园线上跳蚤市场的系统设计(程序+开题+论文)
查看>>
python+flask计算机毕业设计高校疫情防控管理平台(程序+开题+论文)
查看>>
Python+Jenkins+Allure Report接口自动化测试持续集成
查看>>
python+locust电商全流程性能测试
查看>>