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

【Python 语法糖小火锅 · 第 4 涮】

一、糖味一句话

列表 / 集合 / 字典 / 生成器推导式 = 把「循环 + 条件 + 收集」三件套浓缩成一行,
编译器帮你做 append、add、update,速度还更快。


二、1 行示例 4 连发

nums = range(10)lst = [x*x for x in nums if x % 2 == 0]          # 列表
s   = {x for x in nums if x > 5}                 # 集合
d   = {x: x**3 for x in nums if x < 4}           # 字典
gen = (x for x in nums if x % 3)                 # 生成器(惰性)

三、真实场景:日志字段秒变字典

需求:从 access.log 里提取所有状态码 ≥ 400 的 IP 并去重计数。

from pathlib import Path
from collections import Counterips_4xx = Counter(line.split()[0]for line in Path('access.log').read_text().splitlines()if len(line.split()) > 8 and int(line.split()[8]) >= 400
)
print(ips_4xx.most_common(5))

全程只用 1 个推导式 + 1 个 Counter,无显式循环。


四、防踩坑小贴士

  1. 列表推导式会一次性生成全部元素,大数据请改用生成器表达式
  2. 不要在推导式里写副作用(print、append),会失去可读性。
  3. 嵌套推导式尽量拆成两步,否则调试时找不到北。

记忆口令 :“中括号列表,花括号集/字典,圆括号生万物; for 在前 if 在后,一行循环不用愁。”

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

相关文章:

  • 【Python 语法糖小火锅 · 第 3 涮】
  • 【unitrix数间混合计算】2.9 小数部分特征(t_non_zero_bin_frac.rs)
  • 【Canvas与旗帜】圆角蓝底大黄白星十一红白带旗
  • UE破碎Chaos分配模型内部面材质
  • CentOS7编译安装GCC
  • 【Python 高频 API 速学 ④】
  • Spring学习笔记:Spring AOP入门以及基于Spring AOP配置的深入学习与使用
  • 嵌入式软件工程师笔试题(二)
  • 腾讯COS云存储入门
  • 原创邮件合并Python工具使用说明(附源码)
  • 安装NodeJS和TypeScript简要指南
  • 东方心绣脸启幕26周年盛典:以匠心锚定百年基业
  • 百度网盘自动启动如何关闭,关闭智能看图
  • AI推理的“灵魂五问”:直面2025算力鸿沟与中国的破局之路
  • 模拟人脑处理文本——从分句到分词,从段落到时间线叙事
  • 【Datawhale AI夏令营】让AI读懂财报PDF(多模态RAG)(Task 2)
  • 《汇编语言:基于X86处理器》第12章 复习题和练习
  • 《励曼旋耕》Liman Rotary Tillage
  • 202506 电子学会青少年等级考试机器人五级器人理论真题
  • JVM相关(AI回答)
  • 云渲染的未来已来:渲酷云如何重新定义数字内容生产效率
  • [CUDA] CUTLASS | C++ GEMM内核--高度模板化的类
  • 基于STM32H5的循环GPDMA链表使用
  • C语言指针完全指南:从入门到精通
  • C++虚函数表实现机制以及用C语言对其进行的模拟实现(加入了自己的思考和笔记)
  • 轻松Linux-5.进程控制
  • Linux文件系统基石:透彻理解inode及其核心作用
  • 复现论文关于3-RPRU并联机器人运动学建模与参数优化设计
  • 智慧农业-无人机视角庄稼倒伏农作物倒伏识别分割数据集labelme格式541张1类别
  • java基础(六)jvm