负数下标不越界条件是:i 满足 -len(seq) ≤ i
索引访问时负数下标怎么算才不越界
Python 序列(如
list、str、tuple)支持从 0 开始的正向索引,也支持从 -1 开始的反向索引。seq[-1]指最后一个元素,seq[-len(seq)]等价于seq[0]。越界判断很简单:只要i满足-len(seq) ,就不会报 <code>IndexError。常见错误是误以为
seq[-0]是倒数第一个——其实-0就是0,它取的是首元素。另外,对空序列[]做任何索引(包括[0]或[-1])都会直接抛出IndexError: list index out of range。切片
[start:end:step]的边界行为和默认值切片不会报索引错误,超出范围会自动截断。比如
[1,2,3][5:10]返回空列表[],"abc"[1:100]返回"bc"。默认值为:start=0(正向)、end=len(seq)、step=1;当step为负时(如[::-1]),start默认变成-1,end默认变成-(len(seq)+1),所以[::-1]才能完整反转。
[1,2,3,4][1:3]→[2,3](左闭右开,不含end)[1,2,3,4][1:10:2]→[2,4](超出end自动停)"hello"[::-2]→"olh"(从末尾开始,隔一个取一个)相加与相乘只允许同类型序列参与
+要求左右操作数类型一致:[1,2] + (3,4)报TypeError;"a" + ["b"]也不行。相乘是「重复拼接」,3 * [1,2]得[1,2,1,2,1,2],但[1,2] * 3.5会报错——右操作数必须是整数(int),浮点数或字符串都不行。立即学习“Python免费学习笔记(深入)”;
注意:
*=是就地操作,对可变序列(如list)会修改原对象;而+和*总是返回新对象。
in和not in成员检查的性能与陷阱
in对list/tuple是 O(n) 线性扫描,大数据量时很慢;对str是优化过的子串搜索(仍可能较慢);对set或dict键才是平均 O(1)。别在循环里反复写if x in my_list:,应提前转成set。容易忽略的点:
"" in "abc"返回True(空字符串是任意字符串的子串);None in [None, 1]没问题,但float("nan") in [float("nan")]是False,因为 NaN 不等于自身。成员检查不触发自定义
__eq__以外的逻辑,也不会调用__contains__以外的方法——除非类显式实现了它。
相关文章
如何验证动态生成的嵌入式 PNG 图像内容一致性
Python中nums[:] = unique的含义与作用详解
Kivy 中如何通过父类统一管理按钮生成逻辑?
如何使用 SHAP 库计算经典合作博弈中的 Shapley 值
如何在 Pandas 中实现满足多维度约束的随机抽样
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
相关标签:
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。
40
2026.11.12
本专题围绕Go-Zero的安装与工具链配置展开,讲清Go版本要求、goctl安装方式、代理镜像、protoc依赖与环境变量设置,说明多版本共存、升级回退与CI流水线安装的做法,并整理安装阶段的常见报错与验证步骤。
40
2026.11.12
本专题整理Go-Zero的入门知识,从框架定位、环境准备到跑通第一个API服务,讲清目录分层、配置加载、日志与中间件的基本用法,并对比Gin、Kratos的差异,帮助Go开发者建立整体认知,判断它是否适合当前项目。
20
2026.11.12
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
140
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
100
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
100
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
100
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
80
2026.11.05
热门下载
相关下载
精品课程
共0课时 | 0人学习
共0课时 | 0人学习
共0课时 | 0人学习
最新文章











