Python中的sorted()函数使用及示例
Python中的sorted()函数是一个非常强大的函数,能够对多种类型的数据进行排序操作,包括数字、字符串、列表等。本文将详细介绍sorted()函数的使用方法及示例。
1. sorted()函数的基本用法
sorted()函数的基本用法非常简单,它可以对任何可迭代对象进行排序,并返回一个排序后的列表或迭代器。该函数使用格式如下:
sorted(iterable, key=None, reverse=False)
其中,iterable参数表示要对其排序的可迭代对象,key参数表示用于排序的函数,reverse参数表示是否按降序排序。
下面我们通过一些示例来介绍sorted()函数的具体用法。
2. 对数字进行排序
如果要对数字进行排序,我们只需要将要排序的数字放入一个列表中,然后把该列表作为sorted()函数的参数传入即可。例如:
nums = [7, 2, 4, 1, 5]
sorted_nums = sorted(nums)
print(sorted_nums)
输出结果为:[1, 2, 4, 5, 7]
如果我们想按照数字的绝对值大小进行排序,我们可以使用key参数,将其设为abs函数:
nums = [-7, 2, 4, -1, 5]
sorted_nums = sorted(nums, key=abs)
print(sorted_nums)
输出结果为:[1, 2, 4, -5, -7]
3. 对字符串进行排序
对于字符串的排序,我们同样可以将其放入一个列表中,然后作为sorted()函数的参数传入。例如:
words = ['apple', 'orange', 'banana', 'kiwi']
sorted_words = sorted(words)
print(sorted_words)
输出结果为:['apple', 'banana', 'kiwi', 'orange']
按照字符串长度进行排序,我们可以使用key参数,将其设为len函数:
words = ['apple', 'orange', 'banana', 'kiwi']
sorted_words = sorted(words, key=len)
print(sorted_words)
输出结果为:['kiwi', 'apple', 'orange', 'banana']
4. 对列表进行排序
对于列表的排序,我们同样可以直接对列表进行排序,并用sorted()函数将其返回。例如:
lst = [[1, 4], [2, 3], [3, 1], [4, 2]]
sorted_lst = sorted(lst)
print(sorted_lst)
输出结果为:[[1, 4], [2, 3], [3, 1], [4, 2]]
这时候的排序是按照列表的第一个元素进行的,如果我们想按照列表的第二个元素进行排序,我们可以使用lambda函数来自定义排序规则:
lst = [[1, 4], [2, 3], [3, 1], [4, 2]]
sorted_lst = sorted(lst, key=lambda x:x[1])
print(sorted_lst)
输出结果为:[[3, 1], [4, 2], [2, 3], [1, 4]]
5. 对字典进行排序
对于字典的排序,我们需要先将其转换为一个包含元组的列表,然后再对该列表进行排序。例如:
dct = {'apple': 3, 'orange': 2, 'banana': 4, 'kiwi': 1}
sorted_dct = sorted(dct.items(), key=lambda x:x[0])
print(sorted_dct)
输出结果为:[('apple', 3), ('banana', 4), ('kiwi', 1), ('orange', 2)]
这时候的排序是按照字典的键进行的,如果我们想按照字典的值进行排序,我们可以将lambda函数设为x[1]:
dct = {'apple': 3, 'orange': 2, 'banana': 4, 'kiwi': 1}
sorted_dct = sorted(dct.items(), key=lambda x:x[1])
print(sorted_dct)
输出结果为:[('kiwi', 1), ('orange', 2), ('apple', 3), ('banana', 4)]
6. 对集合进行排序
对于集合的排序,我们同样可以将其转换为一个列表,然后再对该列表进行排序。例如:
st = {3, 2, 4, 1, 5}
sorted_st = sorted(list(st))
print(sorted_st)
输出结果为:[1, 2, 3, 4, 5]
7. 将iterable转换为迭代器
除了返回排序后的列表外,sorted()函数还可以返回一个迭代器,该迭代器可以逐步迭代排序后的元素。例如:
nums = [7, 2, 4, 1, 5]
sorted_nums_iter = iter(sorted(nums))
for i in sorted_nums_iter:
print(i)
输出结果为:
1
2
4
5
7
8. 按降序排序
如果我们想按降序排序,只需要将reverse参数设为True即可。例如:
nums = [7, 2, 4, 1, 5]
sorted_nums = sorted(nums, reverse=True)
print(sorted_nums)
输出结果为:[7, 5, 4, 2, 1]
综上所述,sorted()函数是Python中一个非常好用的排序函数,我们可以用它来对多种类型的数据进行排序。当然,这里只是简单介绍了sorted()函数的一些常用用法,其它的用法和细节还需要在实践和学习中去掌握。
