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

sorted()函数:如何在Python中对列表进行排序?

发布时间:2023-06-14 14:07:48

在Python中,可以使用sorted()函数对列表进行排序。该函数可以按字典序或者自定义关键字进行排序。本文将从函数的语法和参数介绍,到对列表排序的实例讲解,为读者详细介绍sorted()函数的使用。

一、sorted()函数的语法和参数介绍

sorted()函数的基本语法如下:

sorted(iterable[, key][, reverse])

其中,iterable代表要排序的可迭代对象(如列表、元组、字典等),默认按照可迭代对象内元素的大小进行排序。key参数可选,代表自定义比较函数,用于对列表内的元素进行排序。reverse参数也可选,代表是否按照降序排序,默认为False,代表升序排序。

二、对列表进行排序

按照默认方式,sorted()函数可以对列表中的元素按照从小到大的顺序进行排序。对于数字列表:

nums = [9, 2, 5, 1, 7, 3]

sorted_nums = sorted(nums)

print(sorted_nums)

输出结果为:

[1, 2, 3, 5, 7, 9]

对于字符列表:

fruits = ['orange', 'banana', 'apple', 'pear']

sorted_fruits = sorted(fruits)

print(sorted_fruits)

输出结果为:

['apple', 'banana', 'orange', 'pear']

或者直接使用列表的sort方法:

fruits.sort()

print(fruits)

输出结果同上。

如果想按照降序排序,可以使用reverse参数:

nums = [9, 2, 5, 1, 7, 3]

sorted_nums = sorted(nums, reverse=True)

print(sorted_nums)

输出结果为:

[9, 7, 5, 3, 2, 1]

也可以使用自定义比较函数进行排序。比如对于字符串列表,我们可以按照字符串长度排序:

def string_len(s):

    """

    自定义字符串长度比较函数

    """

    return len(s)

fruits = ['orange', 'banana', 'apple', 'pear']

sorted_fruits = sorted(fruits, key=string_len)

print(sorted_fruits)

输出结果为:

['pear', 'apple', 'banana', 'orange']

可以发现,字符串列表被按照字符串长度的大小进行升序排序了。

除了自定义比较函数外,还可以使用lambda表达式作为key参数的值。比如对于数字列表,我们可以按照数字的绝对值进行排序:

nums = [-9, 2, -5, 1, 7, -3]

sorted_nums = sorted(nums, key=lambda x: abs(x))

print(sorted_nums)

输出结果为:

[1, 2, -3, -5, 7, -9]

可以发现,数字列表按照它们的绝对值大小进行排序了。

三、总结

sorted()函数可以方便地对Python中的列表进行排序。其语法和参数比较简单,理解其使用方法后,可以轻松地编写出符合自己需求的排序代码。