Python中的sort()与sorted()用法

Python中的sort()函数主要用于对列表(list)中的元素进行排序。它有两种形式:一种是列表的方法(即直接对列表对象调用),另一种则是内置的sorted()函数,它返回一个新的已排序列表,而不改变原始列表。

列表的sort()方法

使用列表的sort()方法时,它会直接修改原列表,使其元素按照升序(从小到大)排列。

基本用法

python 复制代码
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]  
my_list.sort()  
print(my_list)  # 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

参数

  • reverse=True:降序排序
  • key:用于比较的函数,例如按照字符串长度排序或按照元素的某个属性排序

示例

降序排序:

python 复制代码
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]  
my_list.sort(reverse=True)  
print(my_list)  # 输出:[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

使用key参数:

假设我们有一个包含字典的列表,我们想要根据字典中的某个值进行排序:

python 复制代码
data = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 20}, {'name': 'Charlie', 'age': 23}]  
data.sort(key=lambda item: item['age'])  
print(data)  
# 输出:[{'name': 'Bob', 'age': 20}, {'name': 'Charlie', 'age': 23}, {'name': 'Alice', 'age': 25}]

内置的sorted()函数

sorted()函数接受一个可迭代对象(如列表、元组等)作为输入,并返回一个新的已排序列表。原列表不会被修改。

基本用法

python 复制代码
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]  
sorted_list = sorted(my_list)  
print(sorted_list)  # 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]  
print(my_list)  # 输出:[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5],原列表未被修改

参数

sorted()函数的参数与sort()方法相同,包括reversekey

总之,sort()sorted()在功能上是相似的,主要区别在于前者会修改原列表,而后者会返回一个新的已排序列表。根据你的具体需求选择使用哪个函数。

相关推荐
萧西待水1 小时前
奥赛一本通 1447 靶形数独
算法·深度优先
梦帮科技3 小时前
AI 音乐产品的发布工程:验证门、数据发布、回滚与生产运维纪律
数据结构·数据库·架构·node.js·音视频·动态规划·推荐算法
麻雀飞吧3 小时前
先判断工具用来学习、开发还是执行
人工智能·python
泯泷3 小时前
那段文字是谁删的?Yjs 14 正式版之前,一套删除归属方案的实现与边界
前端·javascript·算法
hold?fish:palm3 小时前
34 合并K个升序链表
javascript·算法·链表
人邮异步社区4 小时前
学习Python的最佳学习路径是什么?
python·程序员
C++ 老炮儿的技术栈4 小时前
我们在设计tcp协议时,要传一个字符串过去,报文:头十长度十内容,是否要把‘\0‘也填入,长度是否包含‘\0‘
开发语言·数据结构·c++·mfc·c
Navigator_Z6 小时前
LeetCode //C - 1252. Cells with Odd Values in a Matrix
c语言·算法·leetcode
troy1286 小时前
Python 基础语法(九):Django/Flask/FastAPI 三大 Web 框架详细对比解析
python·jupyter·django·flask·github·fastapi
jzshmyt6 小时前
我用 Python 从零“生成“了一个宇宙,然后让它观察自己(v14)
人工智能·pytorch·python·numpy·matplotlib·空间计算·scipy