Python函数精解:sorted()函数

Python函数精解:sorted()函数
最新回答
蘇瑾熙

2021-02-21 14:10:50

Python中的sorted()函数是一个内置函数,用于对所有可迭代的对象进行排序操作。以下是对sorted()函数的详细解析:

基本功能
  • 作用对象:sorted()可以对所有可迭代的对象进行排序操作,如列表、元组、字符串、字典等。
  • 返回值:返回一个新的列表,包含原可迭代对象中的所有元素,但这些元素是按顺序排列的。
语法sorted(iterable, key=None, reverse=False)参数说明
  1. iterable

    必需参数,指定要排序的可迭代对象。

  2. key

    可选参数,用于指定一个函数(或其他可调用对象),该函数将被应用到可迭代对象的每一个元素上,以根据函数的返回值进行比较和排序。

    如果未指定或为None,则直接根据元素本身的值进行比较。

  3. reverse

    可选参数,用于指定排序规则。

    如果为True,则按降序排序;如果为False(默认),则按升序排序。

与list.sort()的区别
  • 应用对象

    list.sort()是列表(list)的一个方法,只能用于列表。

    sorted()是一个内置函数,可以用于任何可迭代对象。

  • 返回值

    list.sort()方法返回None,它是在原地对列表进行排序,即直接修改原列表。

    sorted()函数返回一个新的列表,原可迭代对象保持不变。

示例
  1. 基本排序

    numbers = [3, 1, 4, 1, 5, 9, 2]sorted_numbers = sorted(numbers)print(sorted_numbers) # 输出: [1, 1, 2, 3, 4, 5, 9]
  2. 降序排序

    numbers = [3, 1, 4, 1, 5, 9, 2]sorted_numbers_desc = sorted(numbers, reverse=True)print(sorted_numbers_desc) # 输出: [9, 5, 4, 3, 2, 1, 1]
  3. 使用key参数

    words = ["banana", "pie", "apple", "grape"]sorted_words = sorted(words, key=lambda x: len(x))print(sorted_words) # 输出: ['pie', 'apple', 'grape', 'banana']
  4. 对字典排序

    d = {'apple': 3, 'banana': 1, 'cherry': 2}sorted_dict_items = sorted(d.items(), key=lambda x: x[1])print(sorted_dict_items) # 输出: [('banana', 1), ('cherry', 2), ('apple', 3)]
总结

sorted()函数是Python中一个非常实用的内置函数,它能够对各种可迭代对象进行排序,并返回一个新的列表。通过key和reverse参数,可以灵活地控制排序的规则和方式。与list.sort()方法相比,sorted()函数更加通用,因为它可以应用于任何可迭代对象,而不仅仅是列表。