掘金 人工智能 04月02日
Python小练习系列:学生信息排序(sorted + key函数)
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文通过Python小练习,详细介绍了如何使用`sorted()`函数对学生信息列表进行排序。列表中的每个元素为包含学生姓名和分数的元组。文章首先阐述了按姓名字母顺序排序和按成绩从高到低排序的需求,然后给出了两种实现方法:使用`key`参数自定义排序规则,以及结合`reverse=True`实现降序排序。通过清晰的代码示例和运行结果,帮助读者理解`sorted()`函数在不同排序场景下的应用,适合Python初学者。

🧑‍🎓 题目要求:给定一个学生信息列表,列表元素为包含学生姓名和分数的元组,需要实现按照姓名字母顺序和成绩从高到低进行排序。

💡 核心函数:Python内置的`sorted()`函数用于对列表进行排序,通过`key`参数可以自定义排序规则,`key`参数接收一个函数,函数的返回值将作为排序依据。

✍️ 按姓名排序:定义`by_name(t)`函数,返回元组的第一个元素(姓名),使用`sorted(L, key=by_name)`实现按姓名排序。

💯 按成绩排序:定义`by_score(t)`函数,返回元组的第二个元素的负值(成绩),使用`sorted(L, key=by_score)`实现按成绩降序排序;或者使用lambda表达式`sorted(L, key=lambda t: t[1], reverse=True)`实现同样效果。

🎉 运行结果:展示按姓名排序和按成绩排序的实际结果,验证代码的正确性。

💡Python小练习系列:学生信息排序(sorted + key函数)


一、题目描述

有一个学生信息列表,格式如下,每个元素是一个包含学生姓名和分数的元组:

L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]

请实现以下功能:

    按照姓名的字母顺序进行排序;按照成绩从高到低进行排序。

二、解题思路

Python 的内置函数 sorted() 支持通过 key 参数传入排序规则:

    key 接收一个函数,函数返回值将作为排序依据;对于降序排列,可配合 reverse=True 使用;元组 t[0] 表示姓名,t[1] 表示分数。

三、代码实现

✅ 1. 按姓名排序

L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]def by_name(t):    return t[0]  L2 = sorted(L, key=by_name)print("按姓名排序结果:", L2)

✅ 2. 按成绩从高到低排序

方法一:用 -t[1] 实现降序
def by_score(t):    return -t[1]  L2 = sorted(L, key=by_score)print("按成绩排序结果:", L2)
方法二:配合 reverse=True
L2 = sorted(L, key=lambda t: t[1], reverse=True)print("按成绩排序结果(lambda写法):", L2)

四、运行结果

按姓名排序结果: [('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]按成绩排序结果: [('Adam', 92), ('Lisa', 88), ('Bob', 75), ('Bart', 66)]

五、小结

    sorted() 是处理列表排序的强大工具;配合 key 参数可以实现任意维度的排序逻辑;想要降序排序时,不仅可以在 key 中做负值处理,也可以直接用 reverse=True 参数,代码更简洁。

📌 练习价值:本题考察了 Python 对元组列表的排序技巧,适合初学者掌握 sorted 的使用方式,为后续处理更复杂的数据结构打好基础。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Python sorted函数 列表排序 key参数 lambda表达式
相关文章