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

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

一、糖味一句话

Python 切片不是简单的「掐头去尾」,而是自带步长的「三维轨道」:
seq[start : stop : step],一口气能翻页、能倒带、能跳格。


二、1 行示例 3 连发

s = "abcdefg"
s[::-1]          # 'gfedcba'   倒带
s[1::2]          # 'bdf'       隔一个取一个
s[slice(-3, None)]  # 'efg'    slice 对象复用

三、真实场景:日志倒序翻页

需求:只把最后 100 行日志按时间倒序输出(文件太大不能全读)。

from pathlib import Path
last_100 = Path('app.log').read_text().splitlines()[-100:][::-1]
print(*last_100, sep='\n')

解释:

  • [-100:] 先把末尾 100 行切出来
  • [::-1] 再整体倒序,零临时变量

四、防踩坑小贴士

  1. start/stop 为负值时,-1 指最后一个元素,不是倒数第二个!
  2. 步长为负且 start/stop 缺省,会自动从尾巴往头跑,所以 seq[::-1] 永远安全。
  3. 想多次复用复杂切片?提前存成 slice 对象:
odd_pos = slice(None, None, 2)  # seq[odd_pos] 等价于 seq[::2]

记忆口令 :“冒号双刀,步长为鞭;负步倒带,slice 可盘。”

http://www.dtcms.com/a/323649.html

相关文章:

  • Vulnhub----Beelzebub靶场
  • 每周算法思考:栈与队列
  • 使用lightGCN完整训练用户 + 商品向量的 3 步指南
  • 在JVM调优时,你关注哪些指标?
  • 裸露土堆识别准确率↑32%:陌讯多模态融合算法实战解析
  • 20250808组题总结
  • C++11中的移动语义
  • Python训练营打卡Day27-类的定义和方法
  • 【后端】Java Stream API 介绍
  • C++11 ---- 线程库
  • 机器学习(西瓜书)学习——绪论
  • 编译技术的两条演化支线:从前端 UI 框架到底层编译器的智能测试
  • 通过MQTT实现OTA升级方案
  • Linux-Redhat9.5静默安装Oracle19.25单实例教程【参照官方文档,超级详细】
  • 【35】C#实战篇——StopRecordingTimer_Tick事件函数中,解绑函数自己,那么该函数会立即结束吗?还会继续执行该函数中剩余部分吗?
  • windows、linux应急响应入侵排查
  • Oracle数据库重启后打开异常状态的检查步骤
  • 模拟人脑处理文本——从分句到分词,从段落到时间线叙事
  • MySQL时间类型
  • windows上LM-Studio下载安装教程
  • 谷歌搜索 sg_ss 逆向分析
  • 自闭和标签形式(self-closing tags)和标准标签形式
  • [概率 DP]808. 分汤
  • C++入门学习3
  • 开漏和推挽模式的区别
  • QT第一讲- Qt初探
  • XSS攻击演示
  • 常用信号深度解析(SIGINT、SIGPIPE、SIGALRM、SIGTERM等)
  • 101-基于Python的个性化音乐推荐系统
  • 码上爬第三题【协程+浏览器调试检测】