在Python中使用的高阶函数
发布时间:2023-05-30 16:23:31
高阶函数是指能够接收函数作为参数和/或将函数作为返回值的函数。在Python中,高阶函数可以简化代码、提高代码的可读性和可维护性。本文将介绍Python中常用的高阶函数。
1. map()函数
map()函数可以对一个序列中的每个元素应用一个函数,返回处理后的序列。
例如:
def square(x):
return x ** 2
nums = [1, 2, 3, 4, 5]
squares = list(map(square, nums))
print(squares) # [1, 4, 9, 16, 25]
2. filter()函数
filter()函数可以根据某个条件筛选出一个序列中的元素,返回满足条件的元素组成的序列。
例如:
def even(x):
return x % 2 == 0
nums = [1, 2, 3, 4, 5]
even_nums = list(filter(even, nums))
print(even_nums) # [2, 4]
3. reduce()函数
reduce()函数可以对一个序列中的元素依次应用一个函数,返回处理后的结果。
例如:
from functools import reduce
def add(x, y):
return x + y
nums = [1, 2, 3, 4, 5]
s = reduce(add, nums)
print(s) # 15
4. sorted()函数
sorted()函数可以对一个序列进行排序,返回排序后的序列。它还可以接受一个关键字参数,指定排序的方式。
例如:
nums = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_nums = sorted(nums)
print(sorted_nums) # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
students = [{'name': 'Alice', 'age': 20},
{'name': 'Bob', 'age': 18},
{'name': 'Charlie', 'age': 22}]
sorted_students = sorted(students, key=lambda x: x['age'])
print(sorted_students) # [{'name': 'Bob', 'age': 18}, {'name': 'Alice', 'age': 20}, {'name': 'Charlie', 'age': 22}]
5. any()和all()函数
any()函数可以判断一个序列中是否存在一个元素满足某个条件,返回True或False。
例如:
nums = [1, 2, 3, 4, 5] has_even = any(num % 2 == 0 for num in nums) print(has_even) # True
all()函数可以判断一个序列中的所有元素是否都满足某个条件,返回True或False。
例如:
nums = [2, 4, 6, 8, 10] all_even = all(num % 2 == 0 for num in nums) print(all_even) # True
6. partial()函数
partial()函数可以将一个函数的某些参数固定,返回一个新的函数。这个新的函数可以少传一些参数,而默认使用固定的参数。
例如:
from functools import partial
def power(base, exponent):
return base ** exponent
square = partial(power, exponent=2)
cube = partial(power, exponent=3)
print(square(2)) # 4
print(cube(2)) # 8
7. zip()函数
zip()函数可以将多个序列按照相同的下标合并成一个元组组成的序列,返回合并后的序列。
例如:
a = [1, 2, 3] b = [4, 5, 6] c = [7, 8, 9] abc = list(zip(a, b, c)) print(abc) # [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
以上就是Python中常用的高阶函数,能够大大提高我们的代码效率和可读性,是Python编程的必备技能。
