Python中常用的高阶函数介绍
发布时间:2023-06-01 08:03:16
Python中高阶函数指的是函数能够作为参数传递给另一个函数或返回函数作为结果。这种函数组合的特性让我们在编写代码时可以更加灵活。
1. map函数
map函数可以将一个函数作用于一个可迭代对象中的所有元素,并返回一个新的可迭代对象。比如:
nums = [1, 2, 3, 4, 5] square_nums = map(lambda x: x**2, nums) print(square_nums) # 输出:[1, 4, 9, 16, 25]
2. filter函数
filter函数可以从一个可迭代对象中筛选出符合条件的元素,并返回一个新的可迭代对象。比如:
nums = [1, 2, 3, 4, 5] even_nums = filter(lambda x: x % 2 == 0, nums) print(even_nums) # 输出:[2, 4]
3. reduce函数
reduce函数可以对可迭代对象中的所有元素进行累积计算,比如求和、求积等。需要注意的是,reduce函数需要从functools模块中导入。比如:
from functools import reduce nums = [1, 2, 3, 4, 5] sum_nums = reduce(lambda x, y: x+y, nums) print(sum_nums) # 输出:15
4. sorted函数
sorted函数可以对可迭代对象进行排序,并返回一个新的列表。sorted函数的关键字参数key可以指定排序的依据。比如:
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] words = ['hello', 'world', 'python', 'is', 'awesome'] sorted_words = sorted(words, key=len) print(sorted_words) # 输出:['is', 'hello', 'world', 'python', 'awesome']
5. zip函数
zip函数可以将多个可迭代对象中的元素一一对应,返回一个新的可迭代对象。比如:
nums1 = [1, 2, 3] nums2 = [4, 5, 6] zipped = zip(nums1, nums2) print(list(zipped)) # 输出:[(1, 4), (2, 5), (3, 6)]
6. any和all函数
any函数可以判断可迭代对象中是否存在至少一个元素为True,返回True或False。all函数则判断可迭代对象中的所有元素是否都为True,返回True或False。比如:
nums = [0, 1, 2, 3, 4, 5] has_zero = any(num==0 for num in nums) print(has_zero) # 输出:True all_even = all(num%2==0 for num in nums) print(all_even) # 输出:False
7. partial函数
partial函数可以将一个函数的某些参数预设为固定值,然后返回一个新的函数。比如:
from functools import partial
def add(a, b):
return a + b
add_two = partial(add, 2)
print(add_two(3))
# 输出:5
总结
以上介绍了Python中常用的高阶函数,这些函数都是Python语言中的核心特性。熟练掌握高阶函数的使用,可以让我们写出更加简洁、优雅的代码。
