如何使用sort()函数对列表进行排序
sort()函数是Python内置的一个函数。该函数用于对列表进行排序。排序可以按照升序和降序排列。在本篇文章中,将介绍如何使用sort()函数对列表进行排序。
语法
sort()函数的语法如下:
list.sort(key=None, reverse=False)
参数说明:
key: 指定排序的函数,即按照什么规则进行排序,可选。
reverse: 控制升序还是降序排列,默认为升序,即False,可选。
简单示例
现有一个列表,如下所示:
my_list = [5, 3, 7, 2]
我们可以使用sort()函数简单地对其进行升序排序,如下:
my_list.sort()
print(my_list)
输出结果为:
[2, 3, 5, 7]
也可以对其进行降序排序,如下:
my_list.sort(reverse=True)
print(my_list)
输出结果为:
[7, 5, 3, 2]
注意: sort()函数是直接修改原有列表的排序,如果需要保留原有序列,可以将原列表复制一份再排序,如下:
my_list = [5, 3, 7, 2]
new_list = sorted(my_list)
print(my_list) # [5, 3, 7, 2]
print(new_list) # [2, 3, 5, 7]
sort()函数与sorted()函数的区别:
sort()函数是Python内置的列表函数,操作的是原有列表。而sorted()是Python内置的全局函数,返回新的列表对象。
使用key参数
有时候需要按照一定的规则进行排序,比如按照字符串长度或者元组的某一个元素进行排序。此时可以使用key参数指定一个排序函数来实现。
首先来看一个简单的例子,假设有一个字符串列表:
my_list = ["apple", "banana", "orange", "pear"]
如果想要按照单词长度进行排序,可以自定义一个函数,该函数接收一个单词,返回该单词的长度,然后将这个函数传递给sort()函数中的key参数,如下所示:
def get_word_len(word):
return len(word)
my_list.sort(key=get_word_len)
print(my_list)
输出结果为:
['pear', 'apple', 'banana', 'orange']
同样,也可以对元组的某一个元素进行排序。假设有一个元组列表:
my_list = [(1, 2), (3, 1), (1, 1), (2, 3)]
如果想要按照元组第二个元素进行排序,可以自定义一个函数,该函数接收一个元组,返回该元组的第二个元素,然后将这个函数传递给sort()函数中的key参数,如下所示:
def get_tuple_element(tuple):
return tuple[1]
my_list.sort(key=get_tuple_element)
print(my_list)
输出结果为:
[(1, 1), (3, 1), (1, 2), (2, 3)]
总结
sort()函数是Python内置的一个列表函数,用于对列表进行排序。sort()函数可以按照升序和降序排列,还可以使用key参数按照一定的规则进行排序。sort()函数是直接修改原列表的排序,如果需要保留原有序列,可以将原列表复制一份再排序。
