当前位置: 首页 > news >正文

python---list.sort() 和 sorted(list)的区别

一、二者使用方法

1、list.sort()
  • 作用对象:是列表的方法,直接修改原列表(原地排序)。
  • 返回值:返回 None(不返回新列表)。
  • 语法:list.sort(key=None, reverse=False)
  • 特点:
    1. 仅适用于列表。
    2. 会改变原列表的顺序。
    3. 由于不创建新列表,内存效率更高。

示例:

numbers = [3, 1, 4, 2]
result = numbers.sort()  # 返回 None
print(numbers)  # 输出: [1, 2, 3, 4](原列表被修改)
print(result)   # 输出: None
2、sorted(list):
  • 作用对象:是内置函数,接受任何可迭代对象(如列表、元组、字符串等),返回新列表。
  • 返回值:返回排序后的新列表,原对象不变。
  • 语法:sorted(iterable, key=None, reverse=False)
  • 特点:
    1. 适用于所有可迭代对象(如元组、字典的键等)。
    2. 不修改原对象,而是生成新列表。
    3. 更灵活,但需要额外内存存储新列表。 

示例:

numbers = [3, 1, 4, 2]
new_list = sorted(numbers)  # 返回新列表
print(numbers)     # 输出: [3, 1, 4, 2](原列表未变)
print(new_list)    # 输出: [1, 2, 3, 4]# 对元组排序(返回列表)
tuple_data = (3, 1, 2)
sorted_tuple = sorted(tuple_data)  # 输出: [1, 2, 3]

二、相同处

  • 在 Python 中,list.sort() 和 sorted(list) 都用于对列表进行排序。
  • 两者均支持 key 和 reverse 参数
    # 按字符串长度排序
    words = ["apple", "banana", "cherry"]
    words.sort(key=len)  # 原地按长度排序
    sorted_words = sorted(words, key=len, reverse=True)  # 降序

三、区别

四、如何选择

需要保留原列表或对非列表对象排序 → 用 sorted()。
仅需排序列表且不介意修改原列表 → 用 list.sort()(更高效)。

五、示例对比

# 情况1:需要原列表不变
data = [5, 2, 8]
sorted_data = sorted(data)  # 正确
# data.sort() 会修改原列表,可能不符合需求# 情况2:对字符串排序
text = "python"
sorted_text = sorted(text)  # 返回列表 ['h', 'n', 'o', 'p', 't', 'y']

http://www.dtcms.com/a/328762.html

相关文章:

  • JVM安全点轮询汇编函数解析
  • 计算机网络---IPv6
  • 第6节 torch.nn.Module
  • 熬夜面膜赛道跑出的新物种
  • Spring Boot初级概念及自动配置原理
  • 【递归、搜索与回溯算法】综合练习
  • 系统分析师-数据库系统-并发控制数据库安全
  • 使用 UDP 套接字实现客户端 - 服务器通信:完整指南
  • HiSmartPerf使用WIFI方式连接Android机显示当前设备0.0.0.0无法ping通!设备和电脑连接同一网络,将设备保持亮屏重新尝试
  • 【android bluetooth 协议分析 05】【蓝牙连接详解3】【app侧该如何知道蓝牙设备的acl状态】
  • 【KO】Android 面试高频词
  • 从内核数据结构的角度理解socket
  • Android Activity 的对话框(Dialog)样式
  • RxJava 在 Android 中的深入解析:使用、原理与最佳实践
  • 基于Apache Flink的实时数据处理架构设计与高可用性实战经验分享
  • 【cs336学习笔记】[第5课]详解GPU架构,性能优化
  • 深入 Linux 线程:从内核实现到用户态实践,解锁线程创建、同步、调度与性能优化的完整指南
  • iscc2025区域赛wp
  • 服务器通过生成公钥和私钥安全登录
  • Android 在 2020-2025 都做哪些更新?
  • 如何提供对外访问的IP(内网穿透工具)
  • 【Android】ChatRoom App 技术分析
  • OpenAI 回应“ChatGPT 用多了会变傻”
  • Control Center 安卓版:个性化手机控制中心
  • ClickHouse从入门到企业级实战全解析课程简介
  • 1688商品数据抓取:Python爬虫+动态页面解析
  • 基于elk实现分布式日志
  • Windows11 运行IsaacSim GPU Vulkan崩溃
  • 三极管的基极为什么需要下拉电阻
  • Pycharm选好的env有包,但是IDE环境显示无包