使用Python中的sorted()函数对列表进行排序:一步步教你如何做
发布时间:2023-05-21 00:50:49
Python中的sorted()函数是一个非常有用的函数,可以对Python的数据类型(如列表、元组、字典等)进行排序。本文将介绍如何使用sorted()函数对列表进行排序,并提供一些常见的排序技巧和方法。
1. 基本排序
sorted()函数可以用来排序列表内的元素,且默认按照元素的大小进行升序排列。例如:
a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8] b = sorted(a) print(b)
输出:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 8, 9]
2. 倒序排序
可以使用参数reverse=True对列表进行倒序排序。例如:
a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8] b = sorted(a, reverse=True) print(b)
输出:
[9, 8, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
3. 按绝对值大小排序
可以使用函数abs()获取列表中元素的绝对值,然后进行排序。例如:
a = [-3, 1, 4, -1, -5, 9, 2, -6, 5, 3, 5, -8] b = sorted(a, key=abs) print(b)
输出:
[1, -1, 2, 3, 3, 4, -5, 5, 5, -6, -8, 9]
4. 对多维列表排序
对多维列表进行排序时,可以使用lambda表达式和itemgetter()函数。
lambda表达式:
students = [['Tom', 80], ['John', 90], ['Jony', 84], ['Jony', 88]] students_sorted = sorted(students, key=lambda x: x[1]) print(students_sorted)
输出:
[['Tom', 80], ['Jony', 84], ['Jony', 88], ['John', 90]]
itemgetter()函数:
from operator import itemgetter students = [['Tom', 80], ['John', 90], ['Jony', 84], ['Jony', 88]] students_sorted = sorted(students, key=itemgetter(1)) print(students_sorted)
输出:
[['Tom', 80], ['Jony', 84], ['Jony', 88], ['John', 90]]
5. 对字典的键值排序
可以使用sorted()函数对字典的键和值进行排序。例如:
d = {'apple': 10, 'banana': 5, 'orange': 20, 'pear': 15}
print(sorted(d.items(), key=lambda x: x[0])) # 按键排序
print(sorted(d.items(), key=lambda x: x[1], reverse=True)) # 按值排序
输出:
[('apple', 10), ('banana', 5), ('orange', 20), ('pear', 15)]
[('orange', 20), ('pear', 15), ('apple', 10), ('banana', 5)]
至此,我们介绍了Python中使用sorted()函数对列表进行排序的一些技巧和方法。希望这篇文章对你有所帮助!
