Python sort()函数介绍
sort()函数是Python 列表的一个方法,是python中的内置函数,sort()函数可以对列表进行就地排序。
只使用<来比较项之间的关系。如果任何比较操作失败,异常将不会被屏蔽(在排序过程中发生任何比较操作失败的异常,该异常将会被抛出,而不会被程序自动处理或忽略。) – 如果任何比较操作失败,整个排序操作将失败(并且列表可能会处于部分修改的状态)。
sort()方法语法:
sort(key=None, reverse=False)
参数
sort() 接受两个仅限以关键字形式传入的参数 (仅限关键字参数),这两个参数是可选的:
key 指定带有一个参数的函数,用于从每个列表元素中提取比较键 (例如 key=str.lower)。 对应于列表中每一项的键会被计算一次,然后在整个排序过程中使用。 默认值 None 表示直接对列表项排序而不计算一个单独的键值。
reverse 排序规则,为一个布尔值。 reverse = True 降序, reverse = False 升序(默认)。
返回值
该方法没有返回值,但是会对列表的对象进行排序。
实例
简单使用
x = [8,9,0,7,4,5,1,2,3,6]
x.sort()
print(x)
输出结果
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
sort()降序排序
函数sort() 默认情况下 是升序排序,进行降序排序,需要用到函数reverse()
x = [8,9,0,7,4,5,1,2,3,6]
x.sort()
x.reverse()
print(x)
输出结果
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
对于字符串,默认是按照字母进行排序:
my_list = ['apple', 'date', 'banana', 'cherry']
my_list.sort()
print(my_list)
输出结果
['apple', 'banana', 'cherry', 'date']
开头字母相同,则比较第二个字母
my_list = ['apple', 'banana', 'cherry', 'date', 'abcdefg']
my_list.sort()
print(my_list)
输出结果
['abcdefg', 'apple', 'banana', 'cherry', 'date']
key参数
可选。
指定排序标准的函数。key接受的是一个只有一个形参的函数
key接受的函数返回值,表示此元素的权值,sort将按照权值大小进行排序
将字符串的长度进行排序,可以使用sort()函数并将len函数作为key参数传入:
my_list = ['apple', 'banana', 'cherry', 'date']
my_list.sort(key=len)
print(my_list)
输出结果
['date', 'apple', 'banana', 'cherry']
reverse参数
可选。
reverse接受的是一个bool类型的值 (Ture or False),表示排列顺序。
reverse=False 将对列表进行升序排序(默认)。
reverse=True 将对列表进行降序排序。
x = [8,9,0,7,4,5,1,2,3,6]
x.sort(reverse=True)
print(x)
x.sort(reverse=False)
print(x)
输出结果
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
sort()和sorted()的区别
sorted()介绍文章:Python3 sorted() 函数 – 对所有可迭代的对象进行排序操作。
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
实例
函数sort()修改序列,不返回任何值
x = [8,9,0,7,4,5,1,2,3,6]
y = x.sort()
print(y)
print(x)
输出结果
None
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
sorted()函数 返回一个排序列表,不改变原有序列
x = [8,9,0,7,4,5,1,2,3,6]
y = sorted(x)
print(y)
print(x)
输出结果
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[8, 9, 0, 7, 4, 5, 1, 2, 3, 6]