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

Python中的sorted()函数:用法和示例

发布时间:2023-05-20 13:57:38

sorted()函数是Python的内置函数之一,它可以用于对一个可迭代对象(如列表或元组)进行排序,返回一个新的已排序的列表。它的用法非常简单,可以通过指定列表或元组作为输入,然后返回一个排序后的列表。在本文中,我们将介绍sorted()函数的用法和一些示例。

用法1:基本用法

使用sorted()函数最基本的用法非常简单,只需将待排序列表传递给它即可,例如:

a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
b = sorted(a)
print(b)

这段代码会输出:

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

在这个示例中,我们定义了一个列表a,其中包含了一些整数。然后,我们使用sorted()函数对a进行了排序,并将排序后的结果存储在另一个变量b中。最后,我们打印出了b的值,它与原来的列表a相比是排好序的。

用法2:关键字参数key

除了基本的用法外,sorted()函数还支持使用关键字参数key来进行自定义排序。例如,假设我们有一个包含字符串的列表,我们想按照字符串的长度进行排序,可以使用如下代码:

a = ['banana', 'apple', 'orange', 'kiwi']
b = sorted(a, key=len)
print(b)

这段代码将输出:

['kiwi', 'apple', 'banana', 'orange']

在这个示例中,我们定义了一个包含一些水果名称的列表a。然后,我们使用key=len参数来指定按照字符串长度进行排序,即从短到长。最后,我们打印出了排好序的列表b。

用法3:关键字参数reverse

除了key参数外,sorted()函数还支持使用关键字参数reverse来进行降序排序。例如,我们有一个整数列表a,我们想按照从大到小的顺序进行排序,可以使用如下代码:

a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
b = sorted(a, reverse=True)
print(b)

这段代码将输出:

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

在这个示例中,我们定义了一个整数列表a。然后,我们使用reverse=True参数来指定按照从大到小的顺序进行排序。最后,我们打印出了排好序的列表b。

用法4:多级排序

在某些情况下,我们需要按照多个条件进行排序,这时可以使用多级排序。例如,我们有一个包含元组的列表,每个元组的 个元素是字符串,第二个元素是整数,我们想按照字符串从 个字母开始升序排序,当字符串相同时,再按照整数从小到大排序,可以使用如下代码:

a = [('apple', 5), ('orange', 3), ('banana', 2), ('kiwi', 5), ('orange', 4)]
b = sorted(a, key=lambda x: (x[0][0], x[1]))
print(b)

这段代码将输出:

[('apple', 5), ('banana', 2), ('kiwi', 5), ('orange', 3), ('orange', 4)]

在这个示例中,我们定义了一个包含元组的列表a,其中每个元组的 个元素是字符串,第二个元素是整数。然后,我们使用lambda函数作为key参数的值来指定多级排序。lambda函数将每个元组作为输入,将其 个元素的 个字母作为 级排序的条件,将其第二个元素作为第二级排序的条件。最后,我们打印出了排好序的列表b。

总结

sorted()函数是Python中一个非常方便的排序函数,它支持按照正序或倒序排序,并且支持按照自定义的条件进行排序。在使用时需要注意,sorted()函数并不会直接改变原来的列表,而是返回一个新的排好序的列表。