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

【Python 高频 API 速学 ④】

一、为什么是这 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.dtcms.com/a/323150.html

相关文章:

  • Office安装使用?借助Ohook开源工具?【图文详解】微软Office产品
  • 使用 Conda 安装 xinference[all](详细版)
  • 一个“加锁无效“的诡异现象
  • Java 日志从入门到精通:告别日志混乱
  • C++高性能细粒度时间跟踪实战
  • Python基础教程(五)list和tuple:深度剖析Python列表与元组的终极对决
  • PHP-单引号和双引号(通俗易懂讲解版)
  • 卫星遥感与AI大模型
  • JS逆向实战案例之----【通姆】252个webpack模块自吐
  • NFS 挂载失败** 问题(`mount: wrong fs type`),以下是详细的排查步骤和解决方案
  • 20250809在WIN10下使用diskpart命令格式化TF卡【卡刷荣品PRO-RK3566的核心板】
  • 云渲染的未来已来:渲酷云如何重新定义数字内容生产效率
  • SimBA算法实现过程
  • 39.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--扩展功能--调整发布脚本
  • 利用SymPy与SciPy高效求解参数化方程组的数值解
  • [激光原理与应用-207]:光学器件 - 光纤种子源激光器常用元器件
  • 9-DS18B20-verilog驱动
  • Zabbix自动注册:轻松实现大规模监控
  • [LLM 应用评估] 评估指标 | 评估协调器 | 测试集生成组件
  • 【MATLAB例程】基于UKF的IMM例程,模型使用CA(匀加速)和CT(协调转弯)双模型,二维环境下的轨迹定位。附代码下载链接
  • Python映射合并技术:多源数据集成的高级策略与工程实践
  • Python如何合并两个Excel文件
  • Qt 综述:从基础到一般应用
  • 【第十章】高阶函数揭秘:map、filter、reduce 玩转数据流
  • 数据结构与算法:树状数组
  • BGP笔记
  • [FOC电机控制]霍尔传感器于角度问题
  • 基于IPD体系的研发项目范围管理
  • 畅捷通T+删除维护用户时提示,请先删除消息规则设置
  • 把大模型“关进冰箱”——基于知识蒸馏 + 动态量化的小型化实战笔记