一、为什么是这 4 个?

列表(list)是 Python 最常用的可变序列,
90 % 的操作可以浓缩成 「增、并、删、排」 四个字,
而这四个字正好对应 append / extend / pop / sort。


二、四剑客一览

方法作用原地?返回值典型复杂度
append(obj)末尾追加 1 个元素NoneO(1)
extend(iter)末尾批量并入NoneO(k)
pop(index=-1)按索引删除并返回被删元素O(n-i)
sort(key=, reverse=)就地排序NoneO(n log n)

三、一行代码场景秀

  1. 边读边攒:把文件所有非空行收集起来
lines = []
for line in open('data.txt'):if line.strip():lines.append(line)
  1. 两个列表合并成一份任务队列
todo = []
todo.extend(urgent)
todo.extend(normal)
  1. 实现“撤销最后一次”功能
history = ['write', 'save', 'commit']
last = history.pop()          # -> 'commit'
  1. 按成绩降序,同名按年龄升序
students.sort(key=lambda s: (-s.score, s.age))
  1. 一行代码实现简易 LRU(最近最少使用)缓存
cache, cap = [], 3
def use(x):if x in cache: cache.pop(cache.index(x))cache.append(x)if len(cache) > cap: cache.pop(0)

四、mini 实战:日志 Top-N 实时排序

需求:实时追加数据,始终保证列表内保留访问次数最高的 10 个 IP。

from collections import Counter
top10 = []
counter = Counter()for ip in stream():           # 假设 stream 持续产生 ipcounter[ip] += 1if ip in top10:           # 已存在 → 直接重排top10.sort(key=counter.get, reverse=True)elif len(top10) < 10 or counter[ip] > counter[top10[-1]]:top10.append(ip)top10.sort(key=counter.get, reverse=True)if len(top10) > 10:top10.pop()       # 踢掉第 11 名
print(top10)

核心动作拆解:
append 新增候选
sort 实时重排
pop 淘汰末尾


五、记忆口诀

“append 点射,extend 扫射,pop 拔刀,sort 排队。”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/92461.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/92461.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/92461.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8S的POD数量限制

#k8s-v1.11.11.查询当前节点的最大pod数kubectl describe nodes | grep pods2.编辑配置文件把单台的pod数量调到150个vim /etc/systemd/system/kubelet.service #添加最大数量--maxPods: 1503.加载配置重启服务systemctl daemon-reload systemctl restart kubelet#k8s-v1.21.41…

OpenAI开源大模型 GPT-OSS 开放权重语言模型解析:技术特性、部署应用及产业影响

注&#xff1a;此文章内容均节选自充电了么创始人&#xff0c;CEO兼CTO陈敬雷老师的新书《GPT多模态大模型与AI Agent智能体》&#xff08;跟我一起学人工智能&#xff09;【陈敬雷编著】【清华大学出版社】 清华《GPT多模态大模型与AI Agent智能体》书籍配套视频课程【陈敬雷…

CSS--后端也有自己的CSS要学

CSS,即Cascading Style Sheets,它描述了网页的表现与展示效果 为了演示CSS,我写了一个简单的index.html 为了使用控制变量法,一开始我先不写style.css文件的内容 右键在默认浏览器里查看页面,看看效果 1-选择器 根据标签名进行匹配,所以也叫元素选择器 页面效果: 根据…

Docker swarm 常用的命令集合

#docker swarm## 初始化单节点Swarm docker swarm init# 部署测试服务 docker service create --name web --publish 8080:80 --replicas 3 nginx:alpine# Manager节点初始化&#xff08;指定IP&#xff09; docker swarm init --advertise-addr 192.168.1.100# 获取加入令牌 M…

231. 2 的幂

Problem: 231. 2 的幂 文章目录思路解题过程复杂度Code思路 2的幂 n 的二进制只有一个1&#xff0c;而 n - 1的二进制则是把 n 的二进制1变0, 0变1。 例&#xff1a;2^24100,34-1011. 解题过程 n & n - 1 0 复杂度 时间复杂度: O(1)O(1)O(1)空间复杂度: O(1)O(1)O(1) Co…

浅尝AI辅助C转Verilog方法

一、常规算法模块的开发流程日常芯片开发工作中&#xff0c;挺多看工作是把C语言转verilog。例如ISP的代码&#xff0c;都很先由算法进行C model的开发&#xff0c;验证完性能后&#xff0c;输出算法原理文档和c代码&#xff1b;数字设计接手&#xff0c;把C语言转换为verilog代…

Redis分布式锁详解:原理、实现与实战案例

目录 1. 什么是分布式锁&#xff1f; 分布式锁的核心要求 2. 基于Redis的分布式锁实现方案 &#xff08;1&#xff09;基础方案&#xff1a;SETNX EXPIRE &#xff08;2&#xff09;优化方案&#xff1a;SET NX PX&#xff08;原子性加锁&#xff09; &#xff08;3&…

【能碳建设1】用AI+开源打造物联网+能碳管理+交易SaaS系统的最短路径实施指南

摘要 本指南为技术小白设计,目标是在最短时间内利用AI工具与开源系统,独立完成一套物联网平台 + 能碳管理平台 + 碳交易系统的SaaS最小可用版本(MVP),并可后续扩展。流程分为目标定义、技术选型、环境搭建、核心功能开发、SaaS化、多租户、上线运维等环节,按天推进,每步…

CVPR中深度学习新范式:通用性、鲁棒性与多模态的创新突破

来gongzhonghao【图灵学术计算机论文辅导】&#xff0c;快速拿捏更多计算机SCI/CCF发文资讯&#xff5e;分享一个深度学习领域正在迅速升温的前沿方向&#xff1a;通用性与鲁棒性的深度神经网络架构创新。随着大模型在视觉、文本乃至多模态任务中的广泛应用&#xff0c;体现出深…

Vue3 学习教程,从入门到精通,Vue 3 + Tailwind CSS 全面知识点与案例详解(31)

Vue 3 Tailwind CSS 全面知识点与案例详解一、Vue 3 核心语法知识点 1. Vue 3 基础 创建 Vue 3 项目 使用 Vite 创建项目&#xff1a;npm create vuelatest # 选择需要的特性&#xff08;如 TypeScript、Vue Router&#xff09;响应式数据 使用 ref 和 reactive&#xff1a;im…

Android中RecyclerView基本使用

一、RecyclerView 核心概念1. 基本组件关系2. 核心组件作用Adapter&#xff1a;数据与视图的桥梁LayoutManager&#xff1a;控制布局方式&#xff08;线性/网格/瀑布流&#xff09;ViewHolder&#xff1a;缓存视图组件ItemDecoration&#xff1a;添加分割线等装饰ItemAnimator&…

A100用transformers推理gpt-oss

A100本地用transformers推理gpt-oss GPT-oss试用 gpt-oss有两个原生配置是目前&#xff08;2025-8-8&#xff09;Ampere系列显卡不支持的&#xff0c;分别是默认的MXFP4量化&#xff0c;以及Flash-attn V3。tranformers推理是比较慢的&#xff0c;可以用于研究模型本身&#x…

虚拟手机号工具使用

背景&#xff1a;注册部分国外应用时需要国外手机号验证&#xff0c;例如在注册cursor时需要国外手机号 解决&#xff1a;使用虚拟手机号网页进行验证 https://temp-number.com/ 选择自己需要的国家 选择一个手机号 复制手机号到自己的app注册页面 并发送消息&#xff0c;然后…

【线程池】压测确定线程池合适的参数

【线程池】压测确定线程池合适的参数【一】案例说明【二】明确线程池核心参数及优化目标【1】线程池核心参数&#xff08;需压测验证的关键参数&#xff09;【2】优化目标【三】压测前准备【1】环境搭建【2】线程池初始配置&#xff08;基于经验值&#xff09;【3】压测工具与监…

GPT OSS 双模型上线,百度百舸全面支持快速部署

GPT OSS 是 OpenAI 推出的重量级开放模型&#xff0c;专为强推理能力、智能体任务及多样化开发场景设计&#xff0c;标志着大模型在开放性与实用性上的重要突破。该系列包含两款高性能模型&#xff1a;参数规模为 117B 的 GPT‑OSS‑120B 和 21B 的 GPT‑OSS‑20B。二者皆采用 …

C++高频知识点(十七)

文章目录81. 你对智能指针的了解82. 一元、二元仿函数的区别和使用背景一元仿函数二元仿函数83. 描述Linux下文件删除的原理84. 什么是菱形继承&#xff1f;有什么问题&#xff0c;怎么解决&#xff1f;解决菱形继承问题85. IO多路复用是什么&#xff1f;selectpollepollselect…

如何优雅的使用进行参数校验

在spring里面有一个注解 Validated可以在方法的入参里面这样写//方法 getActivityFlag(RequestBody Validated QueryActivityDto queryActivityDto) //参数详情NotBlank(message "userId不能为空")private String userId;NotNull(message "storeId不能为空&q…

Java学习第一百一十部分——CI/CD

目录 一、前言简介 二、基本信息 三、优势价值 四、核心流程 五、技术栈&#xff08;工具矩阵&#xff09; 六、最佳实践 七、与DevOps关系 八、挑战对策 九、使用建议 十、总结归纳 一、前言简介 CI/CD 的本质是&#xff1a;通过自动化流水线&#xff0c;实现代码从提…

关于 Cocoapods 使用

一、Podfile & .podspec 文件 1、Podfile 1.1. 什么是 pod 简单来说&#xff0c;一个 pod 就是 xcode 里面的一个 dependency&#xff1a; Anyway&#xff0c;pod 就是第三方库的意思。一个 pod 就是指一个第三方库。 1.2. Podfile 有什么用 Podfile 可以理解为就是…

编程速递:2025 年巴西 Embarcadero 会议,期待您的到来

每个英雄都有一段充满奋斗的旅程&#xff0c;这段旅程引领他走向荣耀&#xff0c;而开发者英雄的旅程是2025年巴西Embarcadero大会的重点&#xff0c;以庆祝Delphi成立30周年。网站现已上线巴西Embarcadero在世界上最受期待的Delphi发展英雄会议召开前90天&#xff0c;推出了Em…