今天复习py中的sorted

本文介绍如何使用Python对包含姓名和成绩的元组列表进行排序。通过定义不同的排序函数,可以按姓名或成绩对列表进行排序,并解释了为什么某些方法可行而另一些则不行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#下面这方法可行
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
def by_name(x):
    return x[0]
def by_score(x):
    return x[1]

L1=sorted(L,key=by_name)
print(L1)

L2= sorted(L,key=by_score)
print(L2)

print(sorted([('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)], key=lambda x : x[0]))  #此条也可行

L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
def by_name(n):           #但是像这种方法就不可行
    for i in n:
        print (sorted(n,key=str(i[0])))

def by_score(n):          #但是像这种方法就不可行
    for i in n :
        print(sorted(n,key=i[1]))

by_name(L)
by_score(L)

#所以综上所述发现key后面带的值必须要是一个函数,匿名函数也可以,但是格式化取一个数值是不可行的
#官方文档这么说sorted()也是一个高阶函数。用sorted()排序的关键在于实现一个 映射   。。函数。。。关键字是函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值