当前位置:实例文章 » 其他实例» [文章]5.4 python内置高阶函数之--map、reduce、filter、sorted

5.4 python内置高阶函数之--map、reduce、filter、sorted

发布人:shili8 发布时间:2024-12-25 21:11 阅读次数:0

**Python 内置高阶函数**

在 Python 中,高阶函数是指那些接受其他函数作为参数或返回函数的函数。这些函数可以让我们以更灵活和高效的方式编写代码。在本文中,我们将重点讨论四个常用的内置高阶函数:`map()、reduce()、filter()` 和 `sorted()`。

###1. map()

`map()` 函数用于将一个或多个函数应用于一个序列中的每个元素。它返回一个迭代器,包含了所有函数的结果。

**示例代码**

def square(x):
 return x **2numbers = [1,2,3,4,5]
squares = list(map(square, numbers))
print(squares) # 输出:[1,4,9,16,25]

# 使用 lambda 表达式double_numbers = list(map(lambda x: x *2, numbers))
print(double_numbers) # 输出:[2,4,6,8,10]

**注释**

* `map()` 函数接受两个参数:一个函数和一个序列。
* 对于每个元素,`map()` 将应用该函数并将结果添加到迭代器中。
* 如果序列为空,则 `map()` 返回空迭代器。

###2. reduce()

`reduce()` 函数用于将多个值合并为一个值。它接受两个参数:一个函数和一个序列。

**示例代码**
from functools import reducedef add(x, y):
 return x + ynumbers = [1,2,3,4,5]
result = reduce(add, numbers)
print(result) # 输出:15# 使用 lambda 表达式product = reduce(lambda x, y: x * y, numbers)
print(product) # 输出:120

**注释**

* `reduce()` 函数接受两个参数:一个函数和一个序列。
* 对于每个元素,`reduce()` 将应用该函数并将结果传递给下一次迭代。
* 如果序列为空,则 `reduce()` 返回初始值(如果提供了)或抛出异常。

###3. filter()

`filter()` 函数用于过滤一个序列中的元素。它返回一个迭代器,包含了所有通过测试的元素。

**示例代码**
def is_even(x):
 return x %2 ==0numbers = [1,2,3,4,5]
even_numbers = list(filter(is_even, numbers))
print(even_numbers) # 输出:[2,4]

# 使用 lambda 表达式odd_numbers = list(filter(lambda x: x %2 !=0, numbers))
print(odd_numbers) # 输出:[1,3,5]

**注释**

* `filter()` 函数接受两个参数:一个函数和一个序列。
* 对于每个元素,`filter()` 将应用该函数并将结果添加到迭代器中,如果函数返回 True,则保留该元素。
* 如果序列为空,则 `filter()` 返回空迭代器。

###4. sorted()

`sorted()` 函数用于对一个序列进行排序。它返回一个新列表,包含了所有元素按照指定顺序排列。

**示例代码**
numbers = [5,2,8,1,9]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 输出:[1,2,5,8,9]

# 使用 reverse 参数进行倒序排序reverse_sorted_numbers = sorted(numbers, reverse=True)
print(reverse_sorted_numbers) # 输出:[9,8,5,2,1]

**注释**

* `sorted()` 函数接受一个参数:一个序列。
* 对于每个元素,`sorted()` 将应用比较函数(如果提供了)并将结果添加到新列表中。
* 如果序列为空,则 `sorted()` 返回空列表。

在本文中,我们讨论了四个常用的内置高阶函数:`map()、reduce()、filter()` 和 `sorted()`。这些函数可以让我们以更灵活和高效的方式编写代码,例如将函数应用于序列中的每个元素、合并多个值为一个值、过滤序列中的元素以及对序列进行排序等。

相关标签:python开发语言
其他信息

其他资源

Top