Python sorted()函数

文章目录

      • 基本用法
      • 示例
        • 基础排序
        • 使用 `reverse` 参数
        • 使用 `key` 参数
      • 对字典进行排序
      • 高级用法
      • 注意事项

sorted() 是 Python 中的一个内置函数,用于对可迭代对象进行排序。这意味着它可以用来排序列表、元组、字典(基于键)以及其他可迭代的对象。 sorted() 函数返回一个新的、排序后的列表,原始输入对象不会被修改(即它是不可变的)。下面是一些关于 sorted() 函数的基本用法和高级特性的详细讲解。

基本用法

sorted(iterable, /, *, key=None, reverse=False)
  • iterable: 需要排序的可迭代对象。
  • key: 如果需要按照指定的方式进行排序,可以传递一个带有单个参数的函数,此函数将被用于从迭代中的每个元素中提取比较的键 (默认为 None)。
  • reverse: 如果设置为 True,则列表元素将以降序被排列,默认为 False (升序)。

示例

基础排序
# 对列表进行升序排序
my_list = [3, 1, 4, 1, 5, 9, 2]
print(sorted(my_list))
# 输出:[1, 1, 2, 3, 4, 5, 9]
使用 reverse 参数
# 对列表进行降序排序
print(sorted(my_list, reverse=True))
# 输出:[9, 5, 4, 3, 2, 1, 1]
使用 key 参数
# 按字符串长度排序
words = ['banana', 'pie', 'Washington', 'book']
print(sorted(words, key=len))
# 输出:['pie', 'book', 'banana', 'Washington']

对字典进行排序

虽然 sorted() 本身不能直接排序字典,但你可以用它来基于字典的键或值进行排序。

# 基于键排序
my_dict = {'a': 3, 'b': 1, 'c': 2}
print(sorted(my_dict))
# 输出:['a', 'b', 'c']

# 基于值排序
print(sorted(my_dict.items(), key=lambda item: item[1]))
# 输出:[('b', 1), ('c', 2), ('a', 3)]

高级用法

sorted()key 参数非常强大,因为你可以传递一个自定义函数来控制排序逻辑。例如,你可以基于对象的某个属性或者更复杂的数据结构中的值来排序。

注意事项

  • sorted() 返回的是一个新列表,原列表不会被改变。
  • 对于不同类型的数据进行排序时要注意,因为不是所有的数据类型都可以直接比较。例如,直接比较字符串和数字会引发错误。

sorted() 是 Python 中一个非常实用的函数,它提供了强大而灵活的方式来排序各种类型的数据。

你可能感兴趣的:(Python学习,python,开发语言)