Python中的sort函数如何使用?
在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来自定义排序规则,关键是提供一个函数来生成排序的关键字。
