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()方法相同,包括reverse和key。

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

相关推荐
VidDown2 小时前
24fps 转 25fps 不只是改个数字:帧率转换、PAL/NTSC 与音频补偿
python·网络协议·音视频·视频编解码·视频
leobertlan3 小时前
痛苦系列 | DSP-03 跨越单位圆:Z变换与零极点分析
算法·程序员
蛋蛋的就会顺顺的3 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
开发小能手1234 小时前
答案daanC语言
数据结构·算法
死磕音视频4 小时前
让小模型做选择题:限定候选项并读取 logits 概率的入门实践(附 Python 代码)
开发语言·python·大模型·文本分类·transformers
凤山老林5 小时前
Spring Boot 接入国密 SM2/SM3/SM4 的一些实践记录
spring boot·后端·python
Navigator_Z5 小时前
LeetCode //C - 1291. Sequential Digits
c语言·算法·leetcode
pride.li6 小时前
第03章 Python 教程-基础语法:注释与变量
服务器·前端·后端·python·算法·计算机视觉
databook6 小时前
用 Pydantic AI 从零搭建一个能干活的 AI Agent
人工智能·python
康小旺7 小时前
把 markitdown 做成 Windows 桌面版:拖进文档就出 Markdown,附 233MB→64MB 打包裁剪全过程
python