Python内置函数 — sort,sorted
1、sort
列表的属性方法,对列表进行排序,默认升序,返回None值。
源码注释:
""" Sort the list in ascending order and return None.The sort is in-place (i.e. the list itself is modified) and stable (i.e. the order of two equal elements is maintained).If a key function is given, apply it once to each list item and sort them, ascending or descending, according to their function values.The reverse flag can be set to sort in descending order. """
说明:
按升序排序列表并返回None。
排序到位(即列表本身被修改)且稳定(即保持两个相等元素的顺序)。
如果给定了键函数,则将其应用于每个列表项一次,并根据其函数值对其进行升序或降序排序。
反转标志可以设置为按降序排序。
语法结构:
list.sort(key=None, reverse=False)
参数:
- key,可选参数,默认值为None。如果key有值,则按照key的函数规则对列表进行排序,可以用来自定义排序规则。
- reverse,可选参数,排序规则,reverse = True 降序 , reverse = False 升序(默认)
返回值:
- 返回 None值,原列表的元素排序发生改变。
用法实例:
(1)升序排序(默认升序)
lst = [1, 4, 5, 3, 2]
lst.sort()
print(lst)
-------------------------------------------------------------------------------------
运行结果:
[1, 2, 3, 4, 5]
(2)降序排序
lst = [1, 3, 4, 2, 5]
lst.sort(reverse=True)
print(lst)
---------------------------------------------------------------------------------
运行结果:
[5, 4, 3, 2, 1]
(3)使用key自定义排序
lst = [[1, 2], [3, 4], [4, 1], [2, 3]]
lst.sort()
print(lst)
------------------------------------------------------------------------------------
运行结果:
[[1, 2], [2, 3], [3, 4], [4, 1]]
说明:默认是根据二维列表的第一个元素升序排序,下面我们来使用key这个参数来实现根据二维列表的第二个元素排序。
lst = [[1, 2], [3, 4], [4, 1], [2, 3]]
lst.sort(key=lambda x: x[1])
print(lst)
-----------------------------------------------------------------------------------
运行结果:
[[4, 1], [1, 2], [2, 3], [3, 4]]
2、sorted
Python内置函数,对可迭代对象进行排序,默认升序,返回一个新的列表。
源码注释:
""" Return a new list containing all items from the iterable in ascending order.A custom key function can be supplied to customize the sort order, and the reverse flag can be set to request the result in descending order. """
说明:
返回一个新列表,其中按升序包含可迭代项中的所有项。
可以提供自定义键函数来自定义排序顺序,并且可以设置反转标志以请求按降序排序的结果。
语法格式:
sorted(iterable, key=None, reverse=False)
参数:
- iterable,可迭代对象
- key,可选参数,默认值为None。如果key有值,则按照key的函数规则对列表进行排序,可以用来自定义排序规则。
- reverse,可选参数,排序规则,reverse = True 降序 , reverse = False 升序(默认)
返回值:
- 返回一个新的列表
用法实例:
(1)升序排序(默认排序)
a = [1, 4, 5, 3, 2]
b = sorted(a)
print('a=', a)
print('b=', b)
------------------------------------------------------------------------------------
运行结果:
a= [1, 4, 5, 3, 2]
b= [1, 2, 3, 4, 5]
sorted函数没有改变原列表a,按照升序排序生成了一个新的列表b 。
(2)降序排序
a = [1, 4, 5, 3, 2]
b = sorted(a, reverse=True)
print('a=', a)
print('b=', b)
---------------------------------------------------------------------------------
运行结果:
a= [1, 4, 5, 3, 2]
b= [5, 4, 3, 2, 1]
(3)使用key自定义排序
lst = [('b', 2), ('a', 1), ('d', 4), ('c', 3)]
lst_new = sorted(lst, key=lambda x: x[1], reverse=True)
print('lst=', lst)
print('lst_new=', lst_new)
-------------------------------------------------------------------------------------
运行结果:
lst= [('b', 2), ('a', 1), ('d', 4), ('c', 3)]
lst_new= [('d', 4), ('c', 3), ('b', 2), ('a', 1)]
3、sort和sorted的区别
- sort函数是列表的属性方法,sorted是Python的内置函数。
- sort函数是对原列表的元素进行排序,sorted函数是对可迭代对象的元素进行排序,生成一个新列表。
reference:
https://docs.python.org/zh-cn/3.8/library/functions.html#sorted
python中sort()函数的key参数用法__小张要敲代码的博客-CSDN博客_sort函数python key
Python3 sorted() 函数 | 菜鸟教程