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

Python中的sort函数如何使用?

发布时间:2023-11-12 03:01:39

在Python中,sort()函数是列表对象的内置方法之一,用于对列表进行排序。sort()函数有两种使用方式,分别是就地排序和返回新的排序结果。

1. 就地排序:

就地排序是指直接在原有的列表上进行排序,不会返回新的排序结果。sort()函数可以接收多个可选参数来进行不同类型的排序。

(1)默认排序方式:

如果不传递任何参数给sort()函数,它会默认按照升序对列表进行排序。例如:

lst = [4, 2, 1, 3]
lst.sort()
print(lst)

输出结果为:[1, 2, 3, 4]

(2)降序排序:

可以通过传递参数reverse=True来进行降序排序。例如:

lst = [4, 2, 1, 3]
lst.sort(reverse=True)
print(lst)

输出结果为:[4, 3, 2, 1]

(3)自定义排序规则:

可以通过传递一个函数作为参数key来自定义排序规则。函数需要接收一个列表元素作为参数,并根据需要返回一个用于排序的关键字。例如,按照列表元素的绝对值进行排序:

lst = [-4, 2, -1, 3]
lst.sort(key=abs)
print(lst)

输出结果为:[-1, 2, 3, -4]

(4)混合使用:

sort()函数的参数可以混合使用。例如,按照列表元素的长度进行降序排序:

lst = ['apple', 'banana', 'cherry', 'date']
lst.sort(key=len, reverse=True)
print(lst)

输出结果为:['banana', 'cherry', 'apple', 'date']

2. 返回新的排序结果:

sort()函数也可以返回一个新的排序结果,而不是就地排序。

(1)默认排序方式:

可以使用sorted()函数来对列表进行排序,它返回一个新的已排序的列表。例如:

lst = [4, 2, 1, 3]
new_lst = sorted(lst)
print(new_lst)

输出结果为:[1, 2, 3, 4]

(2)降序排序:

根据需要传递参数reverse=True来进行降序排序。例如:

lst = [4, 2, 1, 3]
new_lst = sorted(lst, reverse=True)
print(new_lst)

输出结果为:[4, 3, 2, 1]

(3)自定义排序规则:

可以传递一个函数作为参数key来自定义排序规则。例如,按照列表元素的绝对值进行排序:

lst = [-4, 2, -1, 3]
new_lst = sorted(lst, key=abs)
print(new_lst)

输出结果为:[-1, 2, 3, -4]

(4)混合使用:

sorted()函数的参数可以混合使用。例如,按照列表元素的长度进行降序排序:

lst = ['apple', 'banana', 'cherry', 'date']
new_lst = sorted(lst, key=len, reverse=True)
print(new_lst)

输出结果为:['banana', 'cherry', 'apple', 'date']

需要注意的是,sort()函数是对列表进行就地排序,而sorted()函数是返回新的排序结果。二者都不支持对字典进行排序,可以使用operator模块中的方法来对字典进行排序。另外,sort()函数和sorted()函数都可以通过传递参数key来自定义排序规则,关键是提供一个函数来生成排序的关键字。