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

【Python 高频 API 速学 ②】

一、为什么它们能打包讲?

• 都是「可迭代对象」的通用工具,不挑列表、元组、生成器。
• 组合使用,90 % 的「遍历 → 统计 → 排序」流水线可以直接写在一行。


二、六件套速览

API一句话定位返回类型额外武器
len(obj)一口气数完元素intO(1) 长度
sum(iter)元素相加数值start 参数
sorted(iter, key=, reverse=)不破坏原序列排序新列表key 函数
enumerate(iter, start=0)边循环边带索引枚举对象start 偏移
zip(*iters)并行迭代多个序列元组迭代器自动最短截断
any(iter)只要有一个真就 Truebool短路求值

三、6 个一行代码场景

  1. 统计文件行数
line_cnt = sum(1 for _ in open('data.txt', encoding='utf-8'))
  1. 找出最高分学员
top = max(scores, key=lambda kv: kv[1])   # scores=[('Alice', 92), ...]
  1. 同时拿到值和索引(倒序)
for idx, val in enumerate(reversed(nums), 1):print(f'第 {idx} 名:{val}')
  1. 并行处理两份数据
result = [a + b for a, b in zip(list_a, list_b)]
  1. 快速判断「至少存在一个空字符串」
if any(not s.strip() for s in lines):raise ValueError("发现空行")
  1. 一行排序 + 去重(利用 dict 保序)
unique_sorted = sorted(dict.fromkeys(raw_list))

四、mini 实战:一行日志分析器

需求:统计 nginx access.log 中状态码 ≥ 400 且出现次数最多的 3 个。

from collections import Counter
top3 = Counter(line.split()[8]                 # 取状态码字段for line in open('access.log')if line.split()[8].isdigit() and int(line.split()[8]) >= 400
).most_common(3)
print(top3)

一行不够?其实用括号折叠后真的只有一行。


五、组合口诀

“len 数一数,sum 加一加,sorted 排一排; enumerate 给编号,zip 拉伙伴,any 找真相。”

http://www.xdnf.cn/news/17579.html

相关文章:

  • 让大模型 “睡觉”:把版本迭代当作人类睡眠来设计(附可直接改造的训练作息表与代码)
  • 【Task2】【Datawhale AI夏令营】多模态RAG
  • Python基础教程(四)字符串和编码:深度探索Python字符串与编码的终极指南
  • Milvus 向量数据库基础操作解析
  • Node.js特训专栏-实战进阶:22. Docker容器化部署
  • 模板方法模式:优雅封装算法骨架
  • 代码随想录day60图论10
  • flex布局初体验
  • Kettle ETL 工具存在的问题以及替代方案的探索
  • [激光原理与应用-193]:光学器件 - CLBO晶体:生长过程、工作原理、内部结构、性能指标、关键影响因素
  • MySQL 主备(Master-Slave)复制 的搭建
  • 使用 Vuepress + GitHub Pages 搭建项目文档(2)- 使用 GitHub Actions 工作流自动部署
  • Linux 信号处理标志sa_flags详解
  • visual studio 无明显错误,但是无法编译成功解决—仙盟创梦IDE
  • [IOMMU]面向芯片/SoC验证工程的IOMMU全景速览
  • GoEnhance AI-AI视频风格转换工具
  • 【LLM实战|langgraph】langgrpah基础
  • Zabbix API自动化运维实战
  • dnSpy:设置断点
  • 【Python 工具人快餐 · 第 1 份】
  • 小米MiMo-VL技术报告解读
  • Docker容器
  • 【网络与爬虫 51】Scrapy-Cluster分布式爬虫集群:企业级大规模数据采集解决方案
  • 浅谈 VM 桥接模式:让虚拟机像真实电脑一样接入网络
  • openvela之STM32开发板部署
  • BMS三大领域:电池、楼宇与业务管理系统解析
  • VisionMoE本地部署的创新设计:从架构演进到高效实现
  • 102-基于Spark的招聘数据预测分析推荐系统
  • Android中RecyclerView基本使用
  • SpringBoot配置生效优先级