列表排序(Python)

博客详细介绍了如何使用Python的sorted()函数对包含年龄数据的列表进行降序排序,通过代码实例和走读,解释了排序过程,并提供了测试用例验证排序结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

描述

解决方案

代码

代码走读

传送门

测试用例


描述

给定以下列表:

[{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}]

请按照age大小从大到小排序。

解决方案

使用sorted()函数对列表排序。

代码

alist = [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}]
result = sorted(alist, key=lambda x:x["age"], reverse=True)
print(result)

代码走读

# 初始化列表
alist = [{'name':'a','age':20},{'name':'b','age':30},{'
### 使用 Python列表进行排序Python 中,可以使用内置的 `sorted()` 函数或者列表对象自带的 `.sort()` 方法来进行排序。以下是两种主要方式的具体说明以及示例代码。 #### 1. 使用 `sorted()` 函数 `sorted()` 是一个内置函数,用于返回一个新的已排序列表,不会修改原始列表的内容。可以通过指定参数来自定义排序行为,例如升序或降序排列[^1]。 ```python # 原始列表 data = [3, 1, 4, 1, 5, 9] # 升序排序 (默认) ascending_sorted_data = sorted(data) # 降序排序 descending_sorted_data = sorted(data, reverse=True) print("原列表:", data) print("升序排序后的列表:", ascending_sorted_data) print("降序排序后的列表:", descending_sorted_data) ``` #### 2. 使用 `.sort()` 方法 `.sort()` 是列表的一个方法,会直接对原有列表进行排序并改变其内容。同样支持通过参数调整排序方向和其他规则。 ```python # 原始列表 data = [3, 1, 4, 1, 5, 9] # 升序排序 data.sort() print("升序排序后的列表:", data) # 将列表重新初始化以便演示降序排序 data = [3, 1, 4, 1, 5, 9] data.sort(reverse=True) print("降序排序后的列表:", data) ``` #### 3. 自定义排序规则 当需要按照特定条件排序时,可以利用 `key` 参数传递一个函数作为键值提取器。下面是一个基于字符串长度排序的例子: ```python words = ["apple", "banana", "cherry", "date"] # 按照单词长度排序 length_sorted_words = sorted(words, key=len) print("按长度排序后的单词列表:", length_sorted_words) ``` 对于更复杂的场景,还可以结合 `lambda` 表达式或其他工具完成高级排序逻辑[^2]。 #### 4. 手动实现排序算法(如冒泡排序) 虽然推荐优先采用上述高效的方式解决日常需求,了解基础排序原理也很重要。这里展示了一个简单的冒泡排序实现[^3]: ```python def bubble_sort(arr): n = len(arr) for i in range(n): for j in range(0, n-i-1): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] # 测试数据 test_array = [64, 34, 25, 12, 22, 11, 90] bubble_sort(test_array) print("经过冒泡排序后的数组:", test_array) ``` 以上就是几种常见的 Python 列表排序技术及其应用案例介绍。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值