在Python中使用“sorted”函数:如何对列表进行排序
在Python中,排序是一种常见的操作,我们通常使用“sorted”函数来对列表进行排序。这个函数的工作原理是将列表中的元素按指定的顺序重新排列并返回一个新的列表。具体来说,sorted函数可以接受三个参数:要排序的列表、排序的方式以及一个可选的关键字参数。接下来我们将详细介绍如何使用sorted函数对列表进行排序。
一、对一个简单的整数列表进行排序
我们先来看一个简单的例子,对一个整数列表进行排序。假设我们有一个列表:
lst = [9, 1, 6, 8, 4, 3]
我们想按照从小到大的顺序对其进行排序,可以使用sorted函数:
new_lst = sorted(lst)
这将返回一个新的列表new_lst,其元素应该是按从小到大的顺序排列的。
如果我们想按照从大到小的顺序进行排序,可以使用reverse参数:
new_lst = sorted(lst, reverse=True)
这将返回一个新的列表new_lst,其元素应该是按从大到小的顺序排列的。
二、按照特定的方式排序
除了使用reverse参数外,sorted函数还可以按照特定的方式进行排序。例如,我们有以下字典:
dct = {'one':1, 'two':2, 'three':3, 'four':4, 'five':5}
我们想按照键的字母顺序对其进行排序。为此,我们可以使用key参数,并将其设置为str.lower方法(将所有字符转换为小写):
new_dct = sorted(dct.items(), key=lambda x: x[0].lower())
这将返回一个新的字典new_dct,其中的键按字母顺序排列。
三、按照多个条件排序
有时,我们需要按照多个条件对列表进行排序。例如,我们有一个包含学生姓名、年龄和成绩的列表:
students_lst = [('张三', 18, 85), ('李四', 20, 90), ('王五', 18, 80), ('赵六', 19, 75)]
我们想首先按照年龄排序,然后按照成绩排序。为此,我们可以使用多个key参数:
new_students_lst = sorted(students_lst, key=lambda x: (x[1], -x[2]))
这将返回一个新的列表new_students_lst,其中的元素按照年龄和成绩的顺序排列。
注意,当我们使用多个关键字时,需要在lambda表达式中使用元组,以确保按照正确的顺序进行排序。在上面的例子中,我们还使用了一个负号“-”,以确保成绩是按照从大到小的顺序排列的。
结论:
sorted函数是Python中排序列表的一种常见方法。除了基本的按照从小到大或从大到小排序外,sorted函数还可以按照指定的条件进行排序,包括按照键的字母顺序和按照多个条件排序。此外,我们还可以使用reverse参数来改变排序的方向。
