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

【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.dtcms.com/a/323566.html

相关文章:

  • 【线程池】压测确定线程池合适的参数
  • 【js】判断异步函数的返回值要加await
  • 使用LangGraph从零构建多智能体AI系统:实现智能协作的完整指南
  • 计算机系统设计中都有什么任务~计算密集~IO密集~逻辑密集等
  • 提示条贴合右侧边栏
  • java web项目入门了解
  • 天地图,cesium,leaflet
  • java练习题:数字位数
  • Windows下使用PyInstaller打包PyQt项目
  • 第15届蓝桥杯Scratch图形化省赛中级组2024年8月24日真题
  • 4深度学习Pytorch-神经网络--损失函数(sigmoid、Tanh、ReLU、LReLu、softmax)
  • Linux-JSON Schema
  • Java类和对象课上练习题目设计
  • LLM 的向量的方向表示语义,向量长度表示什么
  • Docker容器lnmp平台部署discuz论坛
  • 工具类-高效集合差异计算工具DiffWrapper
  • visual studio 无明显错误,但是无法编译成功解决—仙盟创梦IDE
  • C++入门自学Day7-- String类的自实现
  • Adapting Vision-Language Models Without Labels A Comprehensive Survey
  • RWKV与VRWKV
  • Filter,Interceptor拦截器-登录校验
  • visual studio 字体设置
  • 【小米比笔记本Pro15.6】>>Stasrt PXE over IPv6,Press [Esc] to EXIT...
  • 第二十天:余数相同问题
  • 信息安全简要
  • 分布式锁详解及 Spring Boot 实战示例
  • Redis 持久化策略深度剖析:从原理到实战,守护数据不丢失
  • 基于 InfluxDB 的服务器性能监控系统实战(二)
  • [论文阅读] 人工智能 + 软件工程 | Posterior-GRPO:优化代码生成推理过程的新框架
  • Solana上Launchpad混战:新颖性应被重视