Python中高阶函数的应用:sorted、max、min、sum等
Python的高阶函数是指可以接收其他函数作为参数或者返回其他函数的函数。在Python中,高阶函数被广泛应用,其中以sorted、max、min、sum等函数最为常见。
sorted函数
sorted函数是Python中常用的一个排序函数,它可以对可迭代对象进行排序并返回一个新的排好序的列表,它即是一个高阶函数,它的第一个参数是要排序的序列,第二个参数是一个key函数,用于指定排序算法。例如,我们可以通过sorted函数对一个列表排序:
>>> nums = [3,2,8,5,9,1] >>> sorted(nums) [1, 2, 3, 5, 8, 9]
如果我们想按照序列中元素的绝对值排序,可以使用key参数和abs函数来实现:
>>> nums = [3,-2,8,-5,9,-1] >>> sorted(nums, key=abs) [-1, 2, 3, -5, 8, 9]
max和min函数
max和min函数同样也是高阶函数,分别返回序列中最大元素和最小元素。这两个函数也可以接收key参数和默认值参数,可以用来解决一些有趣的问题。
例如,我们可以通过max函数找到一个列表中的最长字符串:
>>> s = ['Hello', 'World', 'Python', 'Programming'] >>> max(s, key=len) 'Programming'
或者我们可以使用min函数找到一个序列中绝对值最小的数:
>>> nums = [3,-2,8,-5,9,-1] >>> min(nums, key=abs) -1
sum函数
sum函数是Python中的高阶函数之一,它可以计算一个序列或数组中所有元素之和。sum函数的第一个参数是序列或数组,第二个参数是一个起始值(默认为0)。例如,我们可以使用sum函数计算一个列表中所有元素的和:
>>> nums = [1,2,3,4,5] >>> sum(nums) 15
或者我们可以使用sum函数计算一个数组中所有偶数的和:
>>> nums = [1,2,3,4,5,6,7,8,9,10] >>> sum(x for x in nums if x % 2 == 0) 30
lambda函数
除了以上已经介绍过的高阶函数和参数,lambda函数也是Python中常用的高阶函数,它可以创建匿名函数。lambda函数的语法为:lambda arguments : expression,其中arguments是函数的参数,expression是函数执行的表达式。例如,我们可以通过lambda函数来对一个列表进行排序:
>>> nums = [3,2,8,5,9,1] >>> sorted(nums, key=lambda x: x**2) [1, 2, 3, 5, 8, 9]
这里lambda函数的参数是x,表达式是x的平方,相当于key参数中的abs函数。在实际应用中,lambda函数可以用来简化代码、创建回调函数等。
总结
Python中的高阶函数包括sorted、max、min、sum等,它们可以让我们更加方便地操作序列或数组,提高代码的效率和可读性。同时,lambda函数也是Python中常用的高阶函数之一,它可以用来创建匿名函数,简化代码,提高编程效率。
