返回

Python进阶之高阶函数

后端

引言

Python的函数式编程是一种编程范式,它强调使用函数来处理数据,而不是使用变量和循环。函数式编程的一个重要概念是高阶函数,即可以接受其他函数作为参数,或返回函数的函数。

高阶函数类型

Python中常用的高阶函数包括map、filter、reduce、lambda和闭包。

  • map :map函数可以将一个函数应用到一个序列中的每个元素,并返回一个包含函数返回值的新序列。
  • filter :filter函数可以将一个函数应用到一个序列中的每个元素,并返回一个包含函数返回值为真(True)的元素的新序列。
  • reduce :reduce函数可以将一个函数应用到一个序列中的每个元素,并返回一个单一的值。
  • lambda :lambda表达式可以定义一个匿名函数,即没有名称的函数。
  • 闭包 :闭包是指一个函数能够访问其定义范围之外的变量。

高阶函数实例

下面是一些使用高阶函数的实例:

  • map
def square(x):
  return x ** 2

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

squared_numbers = map(square, numbers)

print(list(squared_numbers))

输出:

[1, 4, 9, 16, 25]
  • filter
def is_even(x):
  return x % 2 == 0

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

even_numbers = filter(is_even, numbers)

print(list(even_numbers))

输出:

[2, 4, 6, 8, 10]
  • reduce
def sum(x, y):
  return x + y

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

total = reduce(sum, numbers)

print(total)

输出:

15
  • lambda
squared_numbers = map(lambda x: x ** 2, numbers)

print(list(squared_numbers))

输出:

[1, 4, 9, 16, 25]
  • 闭包
def outer_function():
  x = 10

  def inner_function():
    return x

  return inner_function

inner_function = outer_function()

print(inner_function())

输出:

10

总结

高阶函数是Python中一种强大的工具,可以帮助我们写出更简洁、更可读的代码。通过理解和使用高阶函数,我们可以提高我们的Python编程技能。