Python内置的20个高阶函数的功能和示例详解

这篇具有很好参考价值的文章主要介绍了Python内置的20个高阶函数的功能和示例详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python内置的20个高阶函数的功能和示例详解,Python,python,开发语言

更多资料获取

📚 个人网站:ipengtao.com


Python是一门功能丰富的编程语言,提供了许多内置函数来处理各种数据操作。其中,高阶函数是一类特殊的函数,它们接受其他函数作为参数,或者返回函数作为结果。高阶函数是函数式编程的核心概念之一,可以大大提高代码的可读性和灵活性。本文将介绍Python内置的20个高阶函数,包括它们的功能和示例代码,帮助大家更好地理解和应用这些强大的函数。

1. map(function, iterable, ...)

map()函数接受一个函数和一个可迭代对象作为参数,将函数应用于可迭代对象的每个元素,并返回一个包含结果的迭代器。

# 将列表中的每个元素加1
numbers = [1, 2, 3, 4, 5]
result = map(lambda x: x + 1, numbers)
print(list(result))  # 输出 [2, 3, 4, 5, 6]

2. filter(function, iterable)

filter()函数接受一个函数和一个可迭代对象作为参数,将函数应用于可迭代对象的每个元素,并返回一个包含满足条件的元素的迭代器。

# 过滤出列表中的偶数
numbers = [1, 2, 3, 4, 5]
result = filter(lambda x: x % 2 == 0, numbers)
print(list(result))  # 输出 [2, 4]

3. reduce(function, iterable[, initializer])

reduce()函数接受一个函数和一个可迭代对象作为参数,递归地将函数应用于可迭代对象的元素,返回一个单一的结果值。

from functools import reduce

# 计算列表中所有元素的乘积
numbers = [1, 2, 3, 4, 5]
result = reduce(lambda x, y: x * y, numbers)
print(result)  # 输出 120

4. sorted(iterable, key=None, reverse=False)

sorted()函数接受一个可迭代对象作为参数,返回一个新的排好序的列表。可选参数key用于指定排序关键字函数,reverse用于指定是否降序排序。

# 对列表进行排序
fruits = ["apple", "banana", "cherry", "date"]
result = sorted(fruits)
print(result)  # 输出 ['apple', 'banana', 'cherry', 'date']

# 根据字符串长度进行排序
result = sorted(fruits, key=lambda x: len(x))
print(result)  # 输出 ['date', 'apple', 'banana', 'cherry']

# 降序排序
result = sorted(fruits, reverse=True)
print(result)  # 输出 ['date', 'cherry', 'banana', 'apple']

5. zip(*iterables)

zip()函数接受多个可迭代对象作为参数,返回一个包含元组的迭代器,每个元组包含来自各个可迭代对象的元素。

# 合并两个列表
names = ["Alice", "Bob", "Charlie"]
scores = [85, 92, 78]
result = zip(names, scores)
print(list(result))  # 输出 [('Alice', 85), ('Bob', 92), ('Charlie', 78)]

6. enumerate(iterable, start=0)

enumerate()函数接受一个可迭代对象作为参数,返回一个包含元组的迭代器,每个元组包含元素的索引和值。

# 枚举列表中的元素
fruits = ["apple", "banana", "cherry"]
result = enumerate(fruits)
print(list(result))  # 输出 [(0, 'apple'), (1, 'banana'), (2, 'cherry')]

7. all(iterable)

all()函数接受一个可迭代对象作为参数,如果可迭代对象的所有元素都为真,则返回True,否则返回False

# 检查列表中的元素是否都大于0
numbers = [1, 2, 3, 4, 5]
result = all(x > 0 for x in numbers)
print(result)  # 输出 True

# 检查列表中的元素是否都为真
values = [True, True, False, True]
result = all(values)
print(result)  # 输出 False

8. any(iterable)

any()函数接受一个可迭代对象作为参数,如果可迭代对象的任何元素为真,则返回True,否则返回False

# 检查列表中是否有元素大于10
numbers = [1, 2, 3, 4, 5]
result = any(x > 10 for x in numbers)
print(result)  # 输出 False

# 检查列表中是否有元素为真
values = [True, False, False, False]
result = any(values)
print(result)  # 输出 True

9. max(iterable, *args, key=None, default=None)

max()函数接受一个可迭代对象作为参数,返回可迭代对象中的最大元素。可选参数key用于指定比较的关键字函数,default用于指定可迭代对象为空时的默认返回值。

# 获取列表中的最大值
numbers = [1, 3, 2, 4, 5]
result = max(numbers)
print(result)  # 输出 5

# 根据字符串长度获取最长的字符串
fruits = ["apple", "banana", "cherry", "date"]
result = max(fruits, key=lambda x: len(x))
print(result)  # 输出 'banana'

# 设置默认返回值
result = max([], default="No elements")
print(result)  # 输出 'No elements'

10. min(iterable, *args, key=None, default=None)

min()函数接受一个可迭代对象作为参数,返回可迭代对象中的最小元素。可选参数key用于指定比较的关键字函数,default用于指定可迭代对象为空时的默认返回值。

# 获取列表中的最小值
numbers = [1, 3, 2, 4, 5]
result = min(numbers)
print(result)  # 输出 1

# 根据字符串长度获取最短的字符串
fruits = ["apple", "banana", "cherry", "date"]
result = min(fruits, key=lambda x: len(x))
print(result)  # 输出 'date'

# 设置默认返回值
result = min([], default="No elements")
print(result)  # 输出 'No elements'

11. sum(iterable, start=0)

sum()函数接受一个可迭代对象作为参数,返回可迭代对象中所有元素的总和。可选参数start用于指定总和的初始值。

# 计算列表中所有元素的总和
numbers = [1, 2, 3, 4, 5]
result = sum(numbers)
print(result)  # 输出 15

# 指定初始值并计算总和
result = sum(numbers, start=10)
print(result)  # 输出 25

12. any(iterable)

any()函数接受一个可迭代对象作为参数,如果可迭代对象的任何元素为真,则返回True,否则返回False

# 检查列表中是否有元素大于10
numbers = [1, 2, 3, 4, 5]
result = any(x > 10 for x in numbers)
print(result)  # 输出 False

# 检查列表中是否有元素为真
values = [True, False, False, False]
result = any(values)
print(result)  # 输出 True

13. iter(obj, sentinel)

iter()函数返回一个迭代器对象,该迭代器会不断调用可迭代对象的__next__()方法,直到达到指定的sentinel值为止。

# 使用 iter() 创建一个迭代器
iterator = iter(lambda: input("Enter 'stop' to quit: "), 'stop')
for item in iterator:
    print(item)

14. next(iterator, default)

next()函数接受一个迭代器对象和一个默认值作为参数,返回迭代器的下一个元素。如果迭代器耗尽,将返回默认值。

# 获取迭代器的下一个元素
numbers = [1, 2, 3]
iterator = iter(numbers)
result = next(iterator)
print(result)  # 输出 1

# 迭代器耗尽时返回默认值
result = next(iterator, None)
print(result)  # 输出 None

15. len(s)

len()函数返回对象的长度,例如列表、字符串、元组等。

# 获取列表的长度
fruits = ["apple", "banana", "cherry"]
result = len(fruits)
print(result)  # 输出 3

# 获取字符串的长度
text = "Hello, World!"
result = len(text)
print(result)  # 输出 13

16. reversed(seq)

reversed()函数接受一个序列作为参数,返回一个逆序的迭代器。

# 反转列表
fruits = ["apple", "banana", "cherry"]
result = list(reversed(fruits))
print(result)  # 输出 ['cherry', 'banana', 'apple']

17. slice(start, stop, step)

slice()函数返回一个切片对象,该对象可以用于切片操作。start表示起始位置,stop表示结束位置,step表示步长。

# 创建一个切片对象
my_slice = slice(1, 5, 2)

# 使用切片对象进行切片操作
numbers = [0, 1, 2, 3, 4, 5, 6]
result = numbers[my_slice]
print(result)  # 输出 [1, 3]

18. sorted(iterable, key=None, reverse=False)

sorted()函数接受一个可迭代对象作为参数,返回一个新的排好序的列表。可选参数key用于指定排序关键字函数,reverse用于指定是否降序排序。

# 对列表进行排序
fruits = ["apple", "banana", "cherry", "date"]
result = sorted(fruits)
print(result)  # 输出 ['apple', 'banana', 'cherry', 'date']

# 根据字符串长度进行排序
result = sorted(fruits, key=lambda x: len(x))
print(result)  # 输出 ['date', 'apple', 'banana', 'cherry']

# 降序排序
result = sorted(fruits, reverse=True)
print(result)  # 输出 ['date', 'cherry', 'banana', 'apple']

19. eval(expression, globals=None, locals=None)

eval()函数用于执行一个字符串表达式,并返回表达式的结果。可选参数globalslocals用于指定全局和局部命名空间,如果未提供,则使用当前命名空间。

# 执行字符串表达式
result = eval("3 + 5")
print(result)  # 输出 8

# 在自定义命名空间中执行表达式
x = 10
result = eval("x + 5", globals(), locals())
print(result)  # 输出 15

需要谨慎使用eval()函数,因为它可以执行任意的Python代码,可能存在安全风险。

20. exec(object, globals=None, locals=None)

exec()函数用于执行一个字符串或代码块,并返回None。它可以用于执行包含Python代码的字符串或文件内容。可选参数globalslocals用于指定全局和局部命名空间。

# 执行包含Python代码的字符串
code = """
x = 10
y = 20
result = x + y
print(result)
"""
exec(code)  # 输出 30

# 在自定义命名空间中执行代码块
x = 5
exec("x = x * 2", globals(), locals())
print(x)  # 输出 10

eval()函数类似,需要谨慎使用exec()函数,以避免安全风险。

总结

Python内置了许多强大的高阶函数,它们提供了丰富的功能来处理各种数据操作。本文介绍了20个常用的高阶函数,包括mapfilterreducesortedzipenumerateallanymaxminsumlenreversedslicesortedevalexec等。通过掌握这些高阶函数,可以更高效地处理数据、编写更简洁的代码,并更好地理解函数式编程的概念。

在实际编程中,根据任务需求选择合适的高阶函数可以大大提高代码的可读性和可维护性。希望本文对大家理解和应用Python中的高阶函数有所帮助,能够更加灵活地处理数据和编写高效的程序。


Python学习路线

Python内置的20个高阶函数的功能和示例详解,Python,python,开发语言

更多资料获取

📚 个人网站:ipengtao.com

如果还想要领取更多更丰富的资料,可以点击文章下方名片,回复【优质资料】,即可获取 全方位学习资料包。

Python内置的20个高阶函数的功能和示例详解,Python,python,开发语言
点击文章下方链接卡片,回复【优质资料】,可直接领取资料大礼包。文章来源地址https://www.toymoban.com/news/detail-815710.html

到了这里,关于Python内置的20个高阶函数的功能和示例详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python内置函数bytes()用法详解

            python内置函数bytes返回一个新的bytes类型的对象,bytes类型对象是不可变序列,包含范围为 0 = x 256 的整数。bytes可以看做是bytearray的不可变版本,它同样支持索引和切片操作 bytes语法 class bytes([source[, encoding[, errors]]]) 语法结构: 参数解释: 可选形参source可以传入字

    2024年02月15日
    浏览(66)
  • Python内置函数--input(),print(),eval()三个函数的 功能与运用格式

    Python解释器内置了许多不同功能和类型的函数,今天就给大家简单的介绍三种内置函数及功能: Python之input 函数的用法 1、接收一个标准输入数据,返回string类型 2、在命令行输入一行信息,会将这行信息返回成字符   Python之eval函数的用法 功能:将字符串str当成有效的表达

    2023年04月14日
    浏览(47)
  • 【Python从入门到人工智能】16个必会的Python内置函数(5)——数据转换与计算(详细语法参考 + 参数说明 + 具体示例)

      你的思绪就像这池水,朋友,稍有外界触动就很难清澈明朗,可如果让它静下来,答案顿时变得清晰了。   🎯 作者主页 : 追光者♂ 🔥          🌸 个人简介 : 计算机专业硕士研究生 💖、 2022年CSDN博客之星人工智能领域TOP4 🌟、 阿里云社区特邀专家博主 🏅、 C

    2023年04月13日
    浏览(56)
  • Python 常用内置函数详解(二):print()函数----打印输出

    print() 函数是 Python 编程最常见的函数,常用于输出程序结果,默认输出到屏幕,也可以输出到指定文件中。 语法格式: 参数说明: value:表示要输出的值,可以是数字、字符串、各种类型的变量等。 … :值列表,表示可以一次性打印多个值,输出多个值时,需要使用 \\\",\\\"

    2024年04月28日
    浏览(50)
  • Python 常用内置函数详解(一):isinstance()函数----判断对象是否是类或子类

    isinstance() 函数用于判断对象是否是类或者类型元组中任意类元素的实例。 语法结构如下: 【示例1】使用isinstance()函数判断一个实例对象是否属于某个类。代码如下: 程序运行结果如下图所示: 【示例2】使用isinstance()函数判断某个对象是否属于原生类型,代码如下: 程序

    2024年02月22日
    浏览(69)
  • 【Python从入门到人工智能】16个必会的Python内置函数(4)——数据转换与计算 (详细语法参考+参数说明+具体示例) | 求和、四舍五入、幂运算的综合应用

      成长的标准就是,拒绝别人以后,没有任何的愧疚感。——萨特     🎯作者主页: 追光者♂🔥          🌸个人简介:   💖[1] 计算机专业硕士研究生💖   🌟[2] 2022年度博客之星人工智能领域TOP4🌟   🏅[3] 阿里云社区特邀专家博主🏅   🏆[4] CSDN-人工智能领域优质

    2024年02月15日
    浏览(73)
  • 【Python】torch.no_grad()函数详解和示例

    torch.no_grad() 是 PyTorch 中的一个上下文管理器,用于在进入该上下文时禁用梯度计算。这在你只关心评估模型,而不是训练模型时非常有用,因为它可以显著减少内存使用并加速计算。 当你在 torch.no_grad() 上下文管理器中执行张量操作时,PyTorch 不会为这些操作计算梯度。这意

    2024年03月12日
    浏览(52)
  • 10天玩转Python第6天:python 函数和面向对象基础 全面详解与代码示例

    不定长参数补充-函数调用时的拆包 匿名函数 语法 代码 练习 匿名函数作为函数的参数 - 列表中的字典排序 字符串比大小 基本的介绍 面向过程 关注的是 具体步骤的实现, 所有的功能都自己书写 亲力亲为 定义一个个函数, 最终按照顺序调用函数 面向对象 关注的是结果, 谁

    2024年02月04日
    浏览(60)
  • 【Python】np.maximum()和np.minimum()函数详解和示例

    本文通过函数原理和运行示例,对np.maximum()和np.minimum()函数进行详解,以帮助大家理解和使用。 更多Numpy函数详解和示例,可参考 【Python】Numpy库近50个常用函数详解和示例,可作为工具手册使用 np.maximum() 是 NumPy 库中的一个函数,用于比较两个或更多个数组元素,并返回每

    2024年01月24日
    浏览(41)
  • Python高阶函数

    Python实用教程_spiritx的博客-CSDN博客 高阶函数是在Python中一个非常有用的功能函数,所谓高阶函数就是一个函数可以用来接收另一个函数作为参数,这样的函数叫做高阶函数。高阶函数是函数式编程的基本前提。 函数在 Python 是一等公民(First-Class Object),函数也是对象,是

    2024年02月10日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包