欢迎访问宙启技术站
智能推送

Python中的高阶函数概览

发布时间:2023-06-26 21:10:44

Python是一种强大的编程语言,它支持高阶函数。高阶函数是指那些函数可以接受一个或多个函数作为参数,并/或者返回一个函数作为结果。Python的高阶函数使得编程更加简单、灵活和高效。本文将概述Python中的高阶函数。

1. map()

map() 函数用于对序列中的每个元素执行某个函数,并返回一个列表,该列表包含了函数返回值。其基本语法如下:

map(函数, 序列)

其中,函数可以是任意可调用对象,包括函数、lambda表达式等。序列是可迭代对象。

示例代码:

def square(x):
    return x*x

lst = [1, 2, 3, 4, 5]

res = list(map(square, lst))

print(res)

输出:

[1, 4, 9, 16, 25]

上述代码中,我们定义了一个函数 square() ,它接受一个参数并返回其平方值。然后,我们定义了一个列表 lst ,它包含了 5 个整数。最后,我们使用 map() 函数对 lst 中的每个元素调用 square() 函数,并将返回的结果转换为列表并打印输出。

2. filter()

filter() 函数用于过滤序列中的元素,返回一个由所有符合条件的元素所组成的列表。其基本语法如下:

filter(函数, 序列)

其中,函数的返回值必须是 True 或 False。序列是可迭代对象。

示例代码:

def is_even(x):
    return x % 2 == 0

lst = [1, 2, 3, 4, 5]

res = list(filter(is_even, lst))

print(res)

输出:

[2, 4]

上述代码中,我们定义了一个函数 is_even() ,它判断一个数是否为偶数,返回 True 或 False。然后,我们定义了一个列表 lst ,它包含了 5 个整数。最后,我们使用 filter() 函数过滤掉 lst 中的所有奇数,并将返回的结果转换为列表并打印输出。

3. reduce()

reduce() 函数用于对序列中的元素进行累积操作。其基本语法如下:

reduce(函数, 序列)

其中,函数接受两个参数,第一个参数表示上一次累积的结果,第二个参数表示当前的元素。序列是可迭代对象。

示例代码:

from functools import reduce

def add(x, y):
    return x + y

lst = [1, 2, 3, 4, 5]

res = reduce(add, lst)

print(res)

输出:

15

上述代码中,我们首先引入了 reduce() 函数所在的模块。其次,我们定义了一个函数 add() ,它接受两个参数并返回它们的和。然后,我们定义了一个列表 lst ,它包含了 5 个整数。最后,我们使用 reduce() 函数对 lst 中的元素进行累加操作,并打印输出结果。

4. sorted()

sorted() 函数用于对序列进行排序操作。其基本语法如下:

sorted(序列, key=None, reverse=False)

其中,key 表示排序的关键字,reverse 表示排序的方式(升序或降序)。序列是可迭代对象。

示例代码:

lst = [3, 1, 4, 2, 5]

res = sorted(lst)

print(res)

输出:

[1, 2, 3, 4, 5]

上述代码中,我们定义了一个列表 lst ,它包含了 5 个整数。最后,我们使用 sorted() 函数对 lst 进行排序操作,并打印输出结果。

5. zip()

zip() 函数用于将多个序列合并成一个。其基本语法如下:

zip(序列1, 序列2, ..., 序列n)

其中,序列1、序列2、...、序列n 分别表示要合并的多个序列。zip() 函数将返回一个由元组组成的迭代器,每个元组由输入的多个序列中的一个元素组成。

示例代码:

lst1 = [1, 2, 3]
lst2 = ['a', 'b', 'c']

res = list(zip(lst1, lst2))

print(res)

输出:

[(1, 'a'), (2, 'b'), (3, 'c')]

上述代码中,我们定义了两个列表 lst1lst2,它们分别包含了 3 个元素。最后,我们使用 zip() 函数将 lst1lst2 中的元素以元组的形式合并并打印输出。

以上是Python中常用的高阶函数。当然,这不是全部,Python还有其他很多的高阶函数,如 enumerate()any()all() 等。这些高阶函数使得Python的编程更加便捷、易读和优雅。