第八天 第六章 匿名函数

# 匿名函数即没有名字的函数,通常情况下这种函数只使用一次: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)

 

posted @ 2020-08-21 21:14  Zack6688  阅读(153)  评论(0编辑  收藏  举报