鱼C论坛

 找回密码
 立即注册
查看: 3764|回复: 2

小白关于一个 sorted函数的疑问

[复制链接]
发表于 2015-11-19 23:17:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
假设我们用一组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]
L1=sorted(L,key= by_name)
print(L1)

我现在的疑问是对L里的元素逐个执行by_name函数后,为什么排序后不是
['Adam', 'Bart', 'Bob', 'Lisa']
而是
[('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-11-20 02:20:30 | 显示全部楼层
sorted() 只负责排序,不负责过滤。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-20 09:06:24 | 显示全部楼层
小甲鱼 发表于 2015-11-20 02:20
sorted() 只负责排序,不负责过滤。

小甲鱼,一直在学你视频,很受教。这道题里我就是有点绕不过弯,L1=sorted(L,key= by_name)
那么对L列表的每个元素(元组)执行 by_name函数运算,return的是t[0],那么运算结果不是应该是['Adam', 'Bart', 'Bob', 'Lisa']这样的字符串列表,然后再对这字符串排序?为什么最后又出现了带分数的元组,主要是这个没清楚, 还是它概念我没理解。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-18 09:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表