Python中的sorted()函数:用法和示例
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()函数并不会直接改变原来的列表,而是返回一个新的排好序的列表。
