第八天 第六章 匿名函数
# 匿名函数即没有名字的函数,通常情况下这种函数只使用一次:result = lambda [arg1 [,arg2,...argn]]:expression # result:用于调用lambda表达式 # [arg1 [,arg2,...argn]]:可选参数,指定要传递的参数列表,多个参数用逗号隔开 # expression:必选参数,指定一个实现具体功能的表达式,如果有参数,那么在该表达式中将应用这些参数 # 注:参数可以有多个,但表达式只能有一个,即只能返回一个值,并且不能出现其它非表达式语句,如for或while # 如下面段代码: # 1、常规代码 import math def circlearea(r): result = math.pi*r*r return result r = 10 print('半径为:',r,'的面积是:',circlearea(r)) # 2、lambda表达式代码 r = 10 result = lambda r:math.pi*r*r print('半径为:',r,'的面积是:',result(r)) # 匿名函数(lambda)的主要用途是指定短小的回调函数 # 使用列表对象的sort()方法对列表进行排序,并且在调用sort()方法时,通过lambda表达式指定排序规则,优先按秒杀金额,如有重复,再按折扣比例降序排列 bookinfo = [('不一样的卡梅拉(全套)',22.50,120),('零基础学Android',65.10,89.80), ('摆渡人',23.40,36.00),('福尔摩斯探案全集8册',22.50,128)] print('爬取到的商品信息:\n',bookinfo,'\n') bookinfo.sort(key=lambda x:(x[1],x[1]/x[2])) # 按指定规则进行排序 print('排序后的商品信息:\n',bookinfo)