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

Python中的数据排序函数

发布时间:2023-06-25 20:12:41

Python中提供了多种数据排序函数,内容涉及到列表、元组、字典等数据类型的排序。排序函数可以根据需求进行选择,理解这些函数的使用可以帮助Python开发者更好地处理数据排序问题。

1. 列表排序——list.sort()和sorted()

list.sort()和sorted()是Python中最常见的排序函数,它们都用于对列表进行排序。其中,list.sort()直接对列表进行排序,sorted()则会返回一个新的已排序列表。

(1)list.sort()函数

list.sort()函数可以对原列表进行排序,该函数没有返回值,会直接改变原列表,示例代码如下:

lst = ['b', 'a', 'c', 'd']
lst.sort()  # 对列表进行排序
print(lst)  # 输出['a', 'b', 'c', 'd']

如果需要按照倒序对列表进行排序,可以将reverse参数设置为True,示例代码如下:

lst = ['b', 'a', 'c', 'd']
lst.sort(reverse=True)  # 对列表进行倒序排序
print(lst)  # 输出['d', 'c', 'b', 'a']

(2)sorted()函数

sorted()函数对原列表进行排序时,不会改变原列表,而是返回一个经过排序的新列表,示例代码如下:

lst = ['b', 'a', 'c', 'd']
new_lst = sorted(lst)  # 返回一个新列表,按照升序排序
print(new_lst)  # 输出['a', 'b', 'c', 'd']
print(lst)  # 输出['b', 'a', 'c', 'd'],原列表不会改变

如果需要按照倒序对列表进行排序,可以将reverse参数设置为True,示例代码如下:

lst = ['b', 'a', 'c', 'd']
new_lst = sorted(lst, reverse=True)  # 返回一个新列表,按照倒序排序
print(new_lst)  # 输出['d', 'c', 'b', 'a']
print(lst)  # 输出['b', 'a', 'c', 'd'],原列表不会改变

2. 元组排序——sorted()

元组是一种不可变的序列类型,无法像列表那样使用sort()函数进行排序。但可以使用sorted()函数对元组进行排序。

示例代码如下:

tpl = (3, 2, 4, 1)
new_tpl = tuple(sorted(tpl))  # 对元组进行排序,返回一个新的元组
print(new_tpl)  # 输出(1, 2, 3, 4)
print(tpl)  # 输出(3, 2, 4, 1),原元组不会改变

3. 字典排序——sorted()

字典是一种无序的序列类型,无法像列表或元组那样使用sort()函数进行排序。但可以使用sorted()函数对字典的键值对进行排序,返回一个排序后的键值对列表。

示例代码如下:

dic = {'b': 2, 'a': 1, 'd': 4, 'c': 3}
new_lst = sorted(dic.items(), key=lambda x: x[0])  # 对字典按键进行升序排序,返回一个排序后的键值对列表
print(new_lst)  # 输出[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
print(dic)  # 输出{'b': 2, 'a': 1, 'd': 4, 'c': 3},原字典不会改变

在示例代码中,使用sorted()函数对字典进行排序时,需要将字典转换为键值对列表,即使用items()方法。同时,可以使用lambda表达式对键值对进行排序。

4. 综合排序——sorted()

sorted()函数可以对多维列表、元组等数据类型进行排序,同时可以根据需求进行升序或倒序排序。

示例代码如下:

lst = [('b', 2), ('a', 1), ('d', 4), ('c', 3)]
new_lst = sorted(lst, key=lambda x: x[0], reverse=True)  # 对多维列表按照第1个元素进行倒序排序,返回一个排序后的列表
print(new_lst)  # 输出[('d', 4), ('c', 3), ('b', 2), ('a', 1)]
print(lst)  # 输出[('b', 2), ('a', 1), ('d', 4), ('c', 3)],原列表不会改变

上述示例将多维列表按照第1个元素进行倒序排序。

总之,Python中提供了多种数据排序函数,能够满足不同数据类型、排序方式的需求。熟练掌握这些排序函数的使用,可以提高Python程序员的工作效率。