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

内置函数sorted():介绍Python中的sorted()函数,以及如何使用它对数据进行排序。

发布时间:2023-06-25 14:52:59

Python中的sorted()函数是一个非常有用的内置函数,可以用来对数据进行排序,可以使用它来对列表、元组、字典等数据类型进行排序。

sorted()的基本语法如下:

sorted(iterable, key=None, reverse=False)

这里,iterable表示一个可迭代对象,比如列表、元组,key是一个函数,用来指定排序的关键字,reverse参数是一个布尔值,表示是否要进行逆序排序,默认为False。

下面我们将对这三个参数进行详细的介绍和举例说明。

1. iterable:序列类型对象的排序

首先,我们可以使用sorted()函数来对Python的序列类型对象进行排序,如列表、元组等。

下面是对列表进行排序的示例代码:

>>> nums = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

>>> sorted_nums = sorted(nums)

>>> print(sorted_nums)

[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

这里我们定义了一个列表nums,并使用sorted()函数进行排序,得到了一个新的已排序的列表sorted_nums。输出的结果表明,排序成功。

同样,我们也可以使用sorted()函数来对元组进行排序,如下所示:

>>> tup = (3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5)

>>> sorted_tup = sorted(tup)

>>> print(sorted_tup)

[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

可以看到,使用sorted()函数对元组进行排序的方法与列表基本相同。

2. key:通过特定的方法对列表排序

在实际应用中,我们有时需要按照特定的规则和条件进行排序,这时就需要使用key参数。

例如,我们想对一组字符串对象,按照字符串长度进行排序,可以使用len()函数作为key来实现。示例代码如下:

>>> strings = ['abc', 'defg', 'h', 'ijklmn', 'op', 'qrstu', 'vwxyz']

>>> sorted_strings = sorted(strings, key=len)

>>> print(sorted_strings)

['h', 'op', 'abc', 'defg', 'qrstu', 'ijklmn', 'vwxyz']

这里,我们定义了一个字符串列表strings,并使用len()函数作为key的值进行排序。由于len()返回每个字符串的长度,因此这个排序结果是按照字符串长度递增的顺序排列的。

除了len()函数外,我们还可以使用lambda表达式作为key。比如,我们可以使用lambda表达式,按照每个字符串的 个字母来排序:

>>> sorted_strings = sorted(strings, key=lambda x: x[0])

['abc', 'defg', 'h', 'ijklmn', 'op', 'qrstu', 'vwxyz']

这里,我们使用lambda表达式,用x[0]表示字符串的 个字母来进行排序。结果输出表明,字符串按照 个字母递增排序成功。

3. reverse:对列表进行倒序排列

reverse参数是一个布尔值,用来指定是否要进行逆序排序。默认值为False,表示进行升序排序。

如果需要进行降序排序,可以把reverse设置为True。示例代码如下:

>>> nums = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

>>> sorted_nums_reverse = sorted(nums, reverse=True)

>>> print(sorted_nums_reverse)

[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

这里,我们把reverse参数设为True,表示进行降序排序。输出结果表明,排序成功。

总结

在Python中,sorted()函数是一个非常有用的内置函数,可用于对列表、元组、字典等数据类型进行排序。sorted()函数除了基本语法外,还有两个参数:key和reverse。key参数用来指定排序的关键字,reverse参数则用来指定是否进行倒序排序。使用sorted()函数,可以简单、方便地实现排序功能,是Python程序员必备的工具之一。