Python中的sorted函数是什么?如何使用它来对列表进行排序操作?
Python中的sorted函数是用于对可迭代对象进行排序的函数。即使对于元组或字符串等不可变对象,sorted函数也会返回一个排序后的列表。此函数的用法主要包括两种:sorted(iterable, key=None, reverse=False)和list.sort(key=None, reverse=False)。其中,sorted函数是全局函数,而list.sort()是list的方法。本文将主要介绍sorted函数的用法。
1.使用sorted函数进行简单排序
使用sorted函数对列表进行排序非常方便,示例代码如下:
a = [5, 2, 4, 1, 3] b = sorted(a) # sorted函数对a进行排序,b中为[1, 2, 3, 4, 5]
可以看出,列表a被排序后,新的列表b被赋值为排序后的结果。此时列表a仍然是原来的列表,没有发生变化。
2.使用sorted函数对字典进行排序
在Python中,字典的键是无序的,如果需要按照键对字典进行排序,就可以使用sorted函数。示例代码如下:
d = {'d': 4, 'a': 1, 'b': 2, 'c': 3}
sd = sorted(d.items(), key=lambda x: x[0]) # 按照字典键排序
print(sd) # 结果为 [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
在sorted函数的key参数中指定了一个匿名函数,该函数的返回值为字典中的键。此时,sorted函数将按照字典的键进行排序。同理,如果想要按照字典的值进行排序,只需要将key函数中的x[0]改为x[1]即可。
3.按照多个条件对列表进行排序
在对列表进行排序时,有时需要按照多个条件进行排序。比如,对一个列表的元素进行按照年龄和身高进行排序。此时,可以按照以下方式来指定多个排序条件。
lst = [(30, 170), (25, 180), (30, 175), (25, 170)] slst = sorted(lst, key=lambda x: (x[0], -x[1])) print(slst) # 结果为[(25, 180), (25, 170), (30, 175), (30, 170)]
在上述代码中,使用了lambda函数来定义一个多级排序。其中,x[0]表示按照年龄进行排序,而-x[1]表示按照身高倒序排序。
4.在sorted函数中使用reverse参数
使用reverse参数来控制排序的方式:
a = [5, 2, 4, 1, 3] b = sorted(a, reverse=True) # 按照逆序排序,结果为[5, 4, 3, 2, 1]
5.按照自定义规则进行排序
有时候需要自定义排序规则来对列表进行排序,可以使用lambda函数来实现。示例代码如下:
a = ["apple", "Banana", "Cherry", "banana"] b = sorted(a, key=lambda x: x.lower()) # 按照字母顺序排序 print(b) # 结果为 ["apple", "banana", "Banana", "Cherry"]
在上述代码中,使用了lambda函数来将字符串全部转化为小写字母,然后按照小写字母的规则进行排序。打印输出的结果中,首先按照字母顺序排了"apple"和"banana",其次是"Banana"和"Cherry"。
总结:以上主要介绍了Python中sorted函数的用法,当然,还有很多应用情景需要读者自行发掘。使用sorted函数进行排序可以简单快捷,也可以根据自己的实际需求进行自定义。
