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

Python中的sorted()函数:从简单到高级的排序用法

发布时间:2023-07-04 06:25:32

在Python中,sorted()函数用于对列表、元组、字典等可迭代对象进行排序。它返回一个新的已排序的列表,而不会修改原始对象。本文将介绍sorted()函数的各种用法,从简单到高级。

1. 对列表进行排序:

sorted()函数可以直接对列表进行排序,例如:

   nums = [4, 2, 7, 1, 5]
   sorted_nums = sorted(nums)
   print(sorted_nums)  # 输出:[1, 2, 4, 5, 7]
   

这会返回一个新的已排序的列表,并不会修改原始的nums列表。

2. 对元组进行排序:

sorted()函数也可以对元组进行排序,如下所示:

   numbers = (4, 2, 7, 1, 5)
   sorted_numbers = sorted(numbers)
   print(sorted_numbers)  # 输出:[1, 2, 4, 5, 7]
   

这里的操作和对列表进行排序是类似的。

3. 自定义排序规则:

sorted()函数可以接受一个可选的参数key,它用于指定一个函数来生成排序的关键字。这样可以实现自定义的排序规则,例如按照绝对值进行排序:

   nums = [-2, -1, 3, 0, -4]
   sorted_nums = sorted(nums, key=abs)
   print(sorted_nums)  # 输出:[0, -1, -2, 3, -4]
   

这里传递了abs函数作为key参数,sorted()函数会根据元素的绝对值进行排序。

4. 倒序排序:

sorted()函数还可以通过传递参数reverse=True来进行倒序排序:

   nums = [4, 2, 7, 1, 5]
   sorted_nums = sorted(nums, reverse=True)
   print(sorted_nums)  # 输出:[7, 5, 4, 2, 1]
   

这样会返回一个倒序排列的列表。

5. 对字典进行排序:

sorted()函数可以对字典进行排序,返回排序后的字典的键或键值对。默认情况下,sorted()函数会对字典的键进行排序:

   fruits = {"apple": 3, "banana": 2, "cherry": 5}
   sorted_fruits = sorted(fruits)
   print(sorted_fruits)  # 输出:['apple', 'banana', 'cherry']
   

可以使用key参数来指定排序的规则,例如按照键值对中的值进行排序:

   sorted_fruits = sorted(fruits, key=lambda x: fruits[x])
   print(sorted_fruits)  # 输出:['banana', 'apple', 'cherry']
   

这里使用了lambda函数来作为key参数,根据字典的值进行排序。

6. 排序稳定性:

sorted()函数在排序时是稳定的,即相同的元素会保持原始顺序不变:

   nums = [4, 2, 3, 1, 2]
   sorted_nums = sorted(nums)
   print(sorted_nums)  # 输出:[1, 2, 2, 3, 4]
   

注意第二个和第三个元素的原始顺序并未改变。

这些是sorted()函数的一些常见用法,可以根据具体的需求选择适合的用法进行排序操作。同时,还可以根据实际情况使用其他的参数和函数来完成更复杂的排序任务。