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

Python中如何使用sorted函数?

发布时间:2023-05-24 08:47:30

在Python中,sorted函数是用来对一个可迭代对象进行排序的,它能够对列表、元组、字典等数据类型进行排序。

sorted语法:

sorted(iterable, key=None, reverse=False)

其中iterable表示要排序的可迭代对象,key为可选参数,用于指定排序的方式,reverse为可选参数,用于指定是否降序排列,一般默认为False,表示升序排列。

在使用sorted函数时,可以直接将要排序的可迭代对象传给函数,函数根据可迭代对象中每个元素的大小对其进行排序,并返回一个新的有序列表,原来的可迭代对象不受影响。

以下是sorted函数的几个示例:

1. 对列表进行排序

lst = [5, 3, 9, 1, 7]
sorted_lst = sorted(lst)
print(sorted_lst)   # 输出 [1, 3, 5, 7, 9]

2. 对元组进行排序

tpl = (5, 3, 9, 1, 7)
sorted_tpl = sorted(tpl)
print(sorted_tpl)   # 输出 [1, 3, 5, 7, 9]

3. 对字典进行排序(按键排序)

dic = {'b': 2, 'c': 3, 'a': 1}
sorted_dic = sorted(dic)
print(sorted_dic)   # 输出 ['a', 'b', 'c']

在对字典排序时,得到的结果是排好序的键列表。如果需要按照值来排序,则需要使用key参数来指定排序的方式。

4. 对字典进行排序(按值排序)

dic = {'b': 2, 'c': 3, 'a': 1}
sorted_dic = sorted(dic.items(), key=lambda x: x[1])
print(sorted_dic)   # 输出 [('a', 1), ('b', 2), ('c', 3)]

在上述示例中,使用了items方法将字典转换成一个由键值对元组组成的可迭代对象,然后使用了lambda表达式来指定排序的方式,即按照每个元组的第二个元素(值)进行排序。

需要注意的是,sorted函数返回的是一个新的列表,不对原有的对象进行排序。如果要对原有的对象进行排序,则需要使用sort方法。

以下是sort方法的几个示例:

1. 对列表进行排序

lst = [5, 3, 9, 1, 7]
lst.sort()
print(lst)   # 输出 [1, 3, 5, 7, 9]

2. 对元组进行排序

元组是不可变类型,因此没有sort方法。

3. 对字典进行排序

dic = {'b': 2, 'c': 3, 'a': 1}
sorted_dic = sorted(dic.items(), key=lambda x: x[1])
print(sorted_dic)   # 输出 [('a', 1), ('b', 2), ('c', 3)]

对字典进行排序时,需要使用items方法将字典转换成一个由键值对元组组成的可迭代对象,然后使用sorted函数对其进行排序并返回排序后的结果,最后重新赋值给原字典。

综上所述,sorted函数在Python中是一个非常有用的函数,它可以对可迭代对象进行排序,并返回一个新的有序列表。在使用时,需要注意参数的使用及返回的结果类型。