avatar

RWO.cc

读一次写一次

  • 首页
  • 搭建手册
  • 笔记
  • 短视频
  • 关于
  • 🌈200粉丝🌈
Home Python的内置函数sorted()
文章

Python的内置函数sorted()

Posted 2024-08-30 Updated 2024-08- 29
By RWO.
8~10 min read

在 Python 中,sorted() 函数是一个非常实用且灵活的工具,用于对可迭代对象进行排序。它不仅可以进行简单的升序或降序排序,还可以根据自定义规则进行复杂排序,并且不会改变原始数据。下面我们来详细了解 sorted() 的用法、参数和实际应用。

1. sorted() 函数的基本用法

sorted() 函数用于对任何可迭代对象(如列表、元组、字符串、字典等)进行排序,并返回一个新的排好序的列表。

语法

sorted(iterable, key=None, reverse=False)
  • iterable:要排序的可迭代对象,如列表、元组、字符串等。
  • key:一个函数,用于指定排序的依据。如果没有指定,默认按照元素本身进行排序。
  • reverse:一个布尔值。如果为 True,则结果将按降序排序;如果为 False(默认值),则按升序排序。

2. 示例和用法

示例 1:对数字列表进行排序

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

示例 2:对字符串列表进行字母排序

words = ["banana", "apple", "cherry"]
sorted_words = sorted(words)
print(sorted_words)  # 输出: ['apple', 'banana', 'cherry']

示例 3:降序排序

numbers = [5, 2, 9, 1, 5, 6]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers)  # 输出: [9, 6, 5, 5, 2, 1]

3. 使用 key 参数进行自定义排序

key 参数允许指定一个函数,用于对元素进行排序。这个函数可以是内置函数,也可以是自定义的匿名函数(lambda)。

示例 4:按字符串长度排序

words = ["banana", "apple", "cherry", "date"]
sorted_words = sorted(words, key=len)
print(sorted_words)  # 输出: ['date', 'apple', 'banana', 'cherry']

示例 5:对包含元组的列表按第二个元素排序

students = [("John", 20), ("Jane", 22), ("Dave", 21)]
sorted_students = sorted(students, key=lambda student: student[1])
print(sorted_students)  # 输出: [('John', 20), ('Dave', 21), ('Jane', 22)]

4. 实际应用示例

示例 6:忽略大小写进行字符串排序

words = ["banana", "Apple", "cherry", "date"]
sorted_words = sorted(words, key=lambda s: s.lower())
print(sorted_words)  # 输出: ['Apple', 'banana', 'cherry', 'date']

示例 7:对字典列表按特定键排序

students = [
    {"name": "John", "age": 20},
    {"name": "Jane", "age": 22},
    {"name": "Dave", "age": 21}
]
sorted_students = sorted(students, key=lambda x: x["age"])
print(sorted_students)
# 输出: [{'name': 'John', 'age': 20}, {'name': 'Dave', 'age': 21}, {'name': 'Jane', 'age': 22}]

5. sorted() 和 sort() 的区别

  • sorted() 是一个内置函数,返回一个新的排好序的列表,不会修改原始数据。
  • list.sort() 是列表的方法,它对列表本身进行就地排序,不会返回新列表。

示例 8:sorted() 与 list.sort() 的区别

numbers = [5, 2, 9, 1, 5, 6]

# 使用 sorted(),不改变原列表
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # 输出: [1, 2, 5, 5, 6, 9]
print(numbers)         # 输出: [5, 2, 9, 1, 5, 6]

# 使用 list.sort(),原列表被改变
numbers.sort()
print(numbers)         # 输出: [1, 2, 5, 5, 6, 9]

6. 小结

sorted() 是一个非常灵活和强大的函数,它不仅可以用于简单的升序或降序排序,还可以根据自定义的规则进行复杂的排序。通过使用 key 参数,可以对任何可迭代对象进行排序,同时不会影响原始数据。如果你需要对数据进行排序但不想改变原始数据,sorted() 是一个非常合适的选择。

短视频
每日一点 短视频 Python
License:  CC BY 4.0
Share

Further Reading

Nov 3, 2024

什么是 python 的闭包

在 Python 中,闭包(Closure)是一种函数对象,它不仅包含了函数的代码,还包含了函数创建时的环境变量。这意味着闭包可以“记住”其外部作用域中的变量,即使在外部作用域已经结束后,闭包仍然可以访问这些变量。 函数可以访问他被创建时所处的上下文环境,这被称为闭包。 闭包的基本特征 嵌套函数:闭

Nov 2, 2024

使用argparse模块解析命令行参数

在 Python 中,argparse 模块用于解析命令行参数,使得脚本可以更灵活地接受用户输入。以下是如何使用 argparse 模块解析命令行参数的详细介绍和示例。 基本用法 示例:简单的命令行参数解析 首先,创建一个简单的脚本来解析命令行参数。我们将创建一个脚本,该脚本接受两个整数并打印它们的

Nov 1, 2024

Python中的二维码生成与解析(花里胡哨)

如何使用 qrcode 库生成各种有趣的二维码,包括彩色二维码、带 Logo 的二维码和动态 GIF 二维码。下面,我们将逐步介绍这些功能。 Qrcode 库简介 qrcode 库是一个强大的 Python 工具,用于生成二维码。除了基本的二维码,它还支持自定义功能,如颜色变化、样式设计和动画效果。

OLDER

2FAuth--双因素身份验证器

NEWER

Python 中的匿名函数

Recently Updated

  • 什么是 python 的闭包
  • 使用argparse模块解析命令行参数
  • Python中的二维码生成与解析(花里胡哨)
  • Python中的二维码生成与解析(基础使用)
  • 使用platform模块获取系统信息

Trending Tags

学习 Git 工具 SQL docker-compose 每日一点 快捷键 Flink fastapi Windows

Contents

©2025 RWO.cc. Some rights reserved.

Using the Halo theme Chirpy