欢迎访问宙启技术站
智能推送

使用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()函数对列表进行排序的一些技巧和方法。希望这篇文章对你有所帮助!