map()函数对序列中的每个元素应用给定的函数,产生新的迭代器。
numbers = [1, 2, 3, 4] squared = map(lambda x: x**2, numbers) print(list(squared)) # 输出: [1, 4, 9, 16]
filter()根据提供的函数判断序列中的元素,只保留函数返回值为True的元素。
numbers = [1, 2, 3, 4, 5] even_numbers = filter(lambda x: x % 2 == 0, numbers) print(list(even_numbers)) # 输出: [2, 4]
reduce()函数对序列中的元素进行累积操作,需要导入functools模块。
from functools import reduce numbers = [1, 2, 3, 4] sum_of_numbers = reduce(lambda x, y: x+y, numbers) print(sum_of_numbers) # 输出: 10
sorted()不仅可以对序列进行排序,还能接受一个比较函数来自定义排序规则。
words = ['apple', 'banana', 'cherry', 'date'] sorted_words = sorted(words, key=len) print(sorted_words) # 输出: ['date', 'apple', 'cherry', 'banana']
any()只要序列中有任一元素满足条件即返回True;all()需所有元素均满足条件。
nums = [0, 0, 0, 1] has_non_zero = any(nums) print(has_non_zero) # 输出: True
enumerate()同时返回元素及其索引,常用于循环中。
fruits = ['apple', 'banana', 'mango'] for index, fruit in enumerate(fruits): print(f"Index {index}: {fruit}")
zip()可以将多个可迭代对象的元素配对成元组。
names = ['Alice', 'Bob', 'Charlie'] ages = [25, 30, 35] people = list(zip(names, ages)) print(people) # 输出: [('Alice', 25), ('Bob', 30), ('Charlie', 35)]
reversed()返回一个反转的迭代器。
numbers = [1, 2, 3, 4, 5] print(list(reversed(numbers))) # 输出: [5, 4, 3, 2, 1]
这三个函数可将可迭代对象转换为列表、字典或集合。
tuples = [(1, 'apple'), (2, 'banana')] dictionary = dict(tuples) print(dictionary) # 输出: {1: 'apple', 2: 'banana'}
lambda表达式用于快速定义简单函数,常用于高阶函数的参数。
sum_lambda = lambda x, y: x + y print(sum_lambda(3, 5)) # 输出: 8
高阶函数,是Python中的一把锋利的宝剑,它们不仅简化了代码,还提高了代码的可读性和可维护性。掌握这些函数,就如同获得了解锁编程难题的魔法钥匙,让代码世界在你手中绽放出无限可能。继续探索,你会发现Python的每一个角落都藏着惊喜。?✨
以上就是本次关于Python高阶函数的分享,希望这些示例能激发你对函数式编程的兴趣,让你的编程之旅更加精彩!
11
如果觉得博客文章对您有帮助,异或土豪有钱任性,可以通过以下扫码向我捐助。也可以动动手指,帮我分享和传播。您的肯定,是我不懈努力的动力!感谢各位亲~