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

如何使用sort()函数对列表进行排序

发布时间:2023-05-27 16:43:19

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()函数是直接修改原列表的排序,如果需要保留原有序列,可以将原列表复制一份再排序。