如何使用Python中的sorted()函数进行序列排序
Python中的sorted()函数可以对列表、元组和字符串等类型的序列进行排序。sorted()函数不会改变原序列,而是返回一个新的已排序序列。可以通过指定参数key、reverse和cmp来进行不同方式的排序。
1. 对列表进行排序
例如,有一个列表nums,想要按照从小到大的顺序进行排序:
nums = [3, 1, 4, 6, 5, 2]
sorted_nums = sorted(nums)
print(sorted_nums)
输出结果为:
[1, 2, 3, 4, 5, 6]
也可以按照从大到小的顺序进行排序:
sorted_nums_reverse = sorted(nums, reverse=True)
print(sorted_nums_reverse)
输出结果为:
[6, 5, 4, 3, 2, 1]
2. 对元组进行排序
元组和列表一样也可以进行排序,在元组中使用sorted()函数后,会返回一个新的元组。
例如,有一个元组pairs,想要按照第二个元素从小到大的顺序进行排序:
pairs = [(1, 2), (3, 1), (2, 4), (4, 3)]
sorted_pairs = sorted(pairs, key=lambda x: x[1])
print(sorted_pairs)
输出结果为:
[(3, 1), (1, 2), (4, 3), (2, 4)]
其中key参数是一个函数,用于指定排序的方式,lambda函数返回元组第二个元素进行排序。
3. 对字符串进行排序
指定reverse参数可以对字符串进行简单的排序,将字符串按照字典序从小到大的顺序排序。
例如,对字符串s进行排序:
s = 'adfcb'
sorted_s = sorted(s)
print(sorted_s)
输出结果为:
['a', 'b', 'c', 'd', 'f']
4. 自定义排序方式
除了指定参数key外,还可以使用cmp参数来自定义排序方式。cmp是一种比较函数,用于比较两个值的大小。
例如,按照绝对值的大小进行排序:
nums = [-3, 1, 4, -6, 5, -2]
sorted_nums_abs = sorted(nums, cmp=lambda x, y: cmp(abs(x), abs(y)))
print(sorted_nums_abs)
输出结果为:
[1, -2, 3, -4, 5, -6]
在上述代码中,定义了一个函数cmp,用于比较两个数的绝对值大小。在调用sorted()函数时,将该函数作为cmp参数传入进行排序。
综上所述,Python中的sorted()函数非常方便实用,适用于多种类型序列的排序,而且也可以轻松地实现不同的排序方式。可以通过参考上述示例进行实践,更好地掌握sorted()函数的使用。
