sorted() 函数用于对列表、元组、集合等可迭代对象进行排序。
sorted() 函数的基本语法如下:sorted(iterable, key=None, reverse=False)
其中,
-
iterable:可迭代对象,如列表、元组、集合等。 -
key:可选参数,用于指定排序的依据,可以是一个函数或一个lambda表达式,将元素按照指定的函数进行排序。如果省略该参数,则默认按照元素原有的顺序进行排序。 -
reverse:可选参数,用于指定排序的顺序,如果为True,则进行降序排序,否则进行升序排序。默认为False。
如果我们想按照长度key=len进行降序排序,可以传入 reverse=True 参数:
words = ['apple', 'Banana', 'cherry', 'date', 'Elderberry']
sorted_words = sorted(words, key=len, reverse=True)
print(sorted_words) # ['Elderberry', 'Banana', 'apple', 'cherry', 'date']
使用 sorted() 函数按照分数从高到低对学生成绩表进行排序,然后使用 enumerate() 函数输出排名信息:
students = {
'Alice': 85,
'Bob': 90,
'Carol': 88,
'David': 92,
'Eve': 89,
}
# 按照分数从高到低显示排名
ranked_students = sorted(students.items(), key=lambda x: x[1], reverse=True)
for i, (name, score) in enumerate(ranked_students, start=1):
print(f'{i}. {name}: {score}')
students.items() 返回一个由学生姓名和分数组成的键值对列表,例如 [('Alice', 85), ('Bob', 90), ...]。key=lambda x: x[1] 指定按照分数(列表的第二个元素)进行排序,即 x[1] 表示取出每个键值对中的分数。reverse=True 则指定按照分数从高到低排序,如果省略该参数,则默认按照分数从低到高排序。
综上所述,sorted(students.items(), key=lambda x: x[1], reverse=True) 的含义是按照学生分数从高到低对 students.items() 中的键值对进行排序。