Python3入门基础:第十二篇(sort函数和lambda表达式)

sort函数:

#sort函数  排序
#简单数据类型
a = [22,10,24,21,20]
b = a.sort()
print(a)
c = a.sort(reverse=True)
print(a)
#复杂排序
from functools import cmp_to_key
persons = [
    {'name':'ming ming',
     'age':18
     },
{'name':'hua hua',
     'age':22
     },
{'name':'le le',
     'age':22
     }
]
#先比较年龄大小,如果年龄相等,在比较姓名首字母
def compare(a,b):
    if a['age'] > b['age']:
        return 1
    elif a['age'] < b['age']:
        return -1
    #如果年龄相等
    else:
        if a['name'] > b['name']:
            return 1
        else:
            return -1
persons.sort(key=cmp_to_key(compare))
print(persons)

打印结果:
[10, 20, 21, 22, 24]
[24, 22, 21, 20, 10]
[{'name': 'ming ming', 'age': 18}, {'name': 'hua hua', 'age': 22}, {'name': 'le le', 'age': 22}]

lambda表达式

#根据年龄比较
persons = [
    {'name':'ming ming',
     'age':18
     },
{'name':'hua hua',
     'age':22
     },
{'name':'le le',
     'age':22
     }
]
def my_cmp(x):
    return x['age']
persons.sort(key=my_cmp)
print(persons)
#利用lambda表达式  匿名函数 此处定义方式:lambda x:x['age']
persons.sort(key=lambda x:x['age'])
print(persons)
#lambda表达式比较适合代码只有一行的函数

打印结果:
[{'age': 18, 'name': 'ming ming'}, {'age': 22, 'name': 'hua hua'}, {'age': 22, 'name': 'le le'}]
[{'age': 18, 'name': 'ming ming'}, {'age': 22, 'name': 'hua hua'}, {'age': 22, 'name': 'le le'}]

示例:求两个数的四则运算结果

a = 12
b = 13
def calculate(a,b,func):
    result = func(a,b)
    return  result
result1 = calculate(a,b,lambda x,y:x+y)
result2 = calculate(a,b,lambda x,y:x-y)
result3 = calculate(a,b,lambda x,y:x*y)
result4 = calculate(a,b,lambda x,y:x/y)
print(str(result1)+'\n',str(result2)+'\n',str(result3)+'\n',result4)
打印结果:
25
 -1
 156
 0.9230769230769231
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值