【Python】高阶函数(2)
来源:互联网 发布:网络销售什么经营范围 编辑:程序博客网 时间:2024/06/05 03:22
sorted()
sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序。key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序。
练习:
假设我们用一组tuple表示学生名字和成绩:
L = [(‘Bob’, 75), (‘Adam’, 92), (‘Bart’, 66), (‘Lisa’, 88)]
请用sorted()对上述列表分别按名字排序。
代码如下:
#对名字进行排序L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]def by_name(t): return t[0].lower()L2 = sorted(L, key = by_name)print(L2)
#对分数进行排序L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]def by_score(t): return t[1].lower()L2 = sorted(L, key = by_score)print(L2)
【分析】
L列表中的每个元素都是一个元组,首先按名字排序,key作用与排序中列表里的每一个元素,所以传入by_name里的参数t是一个元组,需要对元组的第一个元素进行排序,所以是t[0]。
函数作为返回值
在函数f()中有定义了g(),并且部内函数g()可以引用外部分数f()的参数和局部变量,当f()返回函数g()时,相关参数和变量都保存在返回的函数中,这种称为“闭包(Closure)。
注意:返回函数不要引用任何循环变量,或者后续会发生变化的变量。如果一定要引用循环变量怎么办?方法是再创建一个函数,用该函数的参数绑定循环变量当前的值,无论该循环变量后续如何更改,已绑定到函数参数的值不变。
匿名函数
匿名函数lambda x: x * x
实际上就是:
def f(x): return x * x
关键字lambda表示匿名函数,冒号前面的x表示函数参数。
匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。
阅读全文
0 0
- 【Python】高阶函数(2)
- python高阶函数
- python 高阶函数
- python高阶函数
- Python高阶函数
- python 高阶函数
- python高阶函数
- Python高阶函数
- python 高阶函数
- python 高阶函数
- python高阶函数
- python高阶函数
- python---高阶函数
- Python高阶函数
- Python 高阶函数
- python高阶函数
- python 高阶函数
- python 高阶函数
- 关于配置cdh
- 机器学习数学|大数定理中心极限定理矩估计
- hdu 2568
- 函数返回数组的非常规实现
- 论安全的重要性
- 【Python】高阶函数(2)
- Spring session
- DA1458x DISS Database的组成结构 -- Device Information Service 分析(一)
- dubbo -4在linux手工部署dubbo(shell脚本)
- ES2015随笔
- events模块
- 购物券消费方案
- springmvc接口返回xml数据出现中文乱码的问题
- struts2_将结果存到值栈的三种方式