深入探索Python排序神器:sorted()函数全解析

开发 前端
在Python编程领域,sorted()函数作为数据排序的核心工具,凭借其灵活性和高效性,成为了每个开发者手中的必备神器。本文将带你全面了解sorted()函数的使用方法、高级技巧及实际应用,通过超过10个生动的代码示例,深度挖掘这一功能的强大之处。

在Python编程领域,sorted()函数作为数据排序的核心工具,凭借其灵活性和高效性,成为了每个开发者手中的必备神器。本文将带你全面了解sorted()函数的使用方法、高级技巧及实际应用,通过超过10个生动的代码示例,深度挖掘这一功能的强大之处。

简介:sorted()函数初探

sorted()函数是一种内置的高级排序方法,能够对任何可迭代对象(如列表、元组、字符串等)进行排序,返回一个新的排序后的列表,原对象保持不变。其基本语法为:sorted(iterable[, key][, reverse]),其中:

iterable 是待排序的可迭代对象。

key 是一个可选参数,用于指定一个函数来作为排序的依据。

reverse 也是一个可选参数,布尔值,默认为False,表示升序排列;设为True则为降序排列。

基础应用:纯数据排序

示例1:简单列表排序

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

示例2:字符串排序

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

高级技巧:利用key参数定制排序规则

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

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

示例4:按绝对值排序负数

nums = [-5, -3, 2, 4, -1]
sorted_abs = sorted(nums, key=abs)
print(sorted_abs)  # 输出:[-1, 2, -3, 4, -5]
示例5:按姓名的姓氏排序
people = ["Alice Johnson", "Bob Smith", "Charlie Brown"]
sorted_by_last_name = sorted(people, key=lambda name: name.split()[-1])
print(sorted_by_last_name)  # 输出:['Charlie Brown', 'Alice Johnson', 'Bob Smith']

逆向排序:掌握reverse参数

示例6:降序排列整数

numbers_desc = sorted([8, 3, 1, 6, 4], reverse=True)
print(numbers_desc)  # 输出:[8, 6, 4, 3, 1]

示例7:字符串倒序排列

words_desc = sorted(["hello", "world", "python"], reverse=True)
print(words_desc)  # 输出:['python', 'world', 'hello']

复合排序:结合多个条件

示例8:先按长度后按字母顺序排序

items = ["apple", "banana", "pear", "orange"]
sorted_complex = sorted(items, key=lambda x: (len(x), x))
print(sorted_complex)  # 输出:['pear', 'apple', 'orange', 'banana']

实战应用:sorted()在数据处理中的妙用

示例9:排序字典列表的某个字段

students = [
    {"name": "Tom", "grade": 88},
    {"name": "Jerry", "grade": 92},
    {"name": "Spike", "grade": 76}
]
sorted_students = sorted(students, key=lambda student: student["grade"], reverse=True)
print(sorted_students)
# 输出:[{'name': 'Jerry', 'grade': 92}, {'name': 'Tom', 'grade': 88}, {'name': 'Spike', 'grade': 76}]

示例10:统计词频并排序

from collections import Counter
text = "the quick brown fox jumps over the lazy dog"
words = text.split()
word_counts = Counter(words)
sorted_word_counts = sorted(word_counts.items(), key=lambda item: item[1], reverse=True)
print(sorted_word_counts)
# 输出:[('the', 2), ('quick', 1), ('brown', 1), ('fox', 1), ('jumps', 1), ('over', 1), ('lazy', 1), ('dog', 1)]

结语

通过以上示例,我们不难发现sorted()函数的灵活性和强大功能,它不仅能够满足基础的排序需求,还能通过key和reverse参数实现复杂的排序逻辑,极大地增强了Python在数据处理方面的表现力。无论是在数据分析、文本处理还是日常编程中,熟练掌握并运用sorted()函数都将使你的代码更加高效、优雅。希望本文能激发你对sorted()函数更深层次的探索和实践,让它成为你编程生涯中不可或缺的得力助手。


责任编辑:华轩 来源: 测试开发学习交流
相关推荐

2020-09-19 17:59:21

sorted()Python函数

2024-02-22 15:31:46

Python排序

2023-11-27 15:08:52

Python编程语言

2022-04-04 09:12:18

Python内置函数

2009-02-10 10:57:09

危险函数PHPCLI

2009-09-18 11:13:09

.Net CLR

2024-03-25 08:00:00

C++递归函数

2010-07-13 10:13:35

Perl内部函数

2023-11-15 08:32:16

正则表达式Python

2021-09-06 09:46:26

Dubbo 服务端开发

2009-10-20 09:28:18

VB.NET Prin

2016-08-23 09:16:46

Docker镜像容器

2009-07-03 18:13:28

Servlet线程安全

2024-02-27 10:44:58

C#线程后端

2010-03-01 14:28:46

Python进程

2010-02-22 10:18:29

Python代码

2010-02-02 13:32:32

Python继承

2010-02-24 16:33:28

Python功能

2024-01-03 10:15:59

Python函数

2010-09-06 16:36:20

DB2快照函数
点赞
收藏

51CTO技术栈公众号