,,Python 切片索引越界的问题(数组下标越界)

,,Python 切片索引越界的问题(数组下标越界)

Python在处理字符串和数组类时有一定概率需要使用切片方法。主要介绍Python切片索引越界问题,有一定的参考价值。感兴趣的朋友可以参考一下。

Python在处理字符串和数组类时有一定概率需要使用切片方法,比如Leetcode_5。

在学习官方解决方案时,发现切片的索引可以超过字符串或数组的最大索引值,编译器不会报错。

欢迎留言说明出现这种情况的具体原因。本文只是对一些情况做了简单的测试。

实例代码

a='123 '

b=a[:5]

打印(b)

结果发现是123,编译器没有报错。当直接使用a[5]时,会报告错误字符串索引超出范围。这是测试结果。

测试代码(字符串)

a='1234567890 '

a1=a[:]

a2=a[:len(a)]

a3=a[:15]

a4=a[16:16]

a5=a[:2]

运行结果:

这是“a”的id:2707772994160

这是“a”的类型:类“str”

这是“a”的值:1234567890

这是“a1”的id:2707772994160

这是“a1”的类型:类“str”

这是“a1”的值:1234567890

这是“a2”的id:2707772994160

这是“a2”的类型:类“str”

这是“a2”的值:1234567890

这是“a3”的id:2707772994160

这是“a3”的类型:类“str”

这是“a3”的值:1234567890

这是“a4”的id:2707740774832

这是“a4”的类型:“str”类

这是“a4”的值:

这是“a5”的id:2707773122544

这是“a5”的类型:类“str”

这是“a5”的值:12

注意:

如果切片结果与原结果相同,则新字符串指向的物理地址就是原字符串的物理地址(a1,a2,a3)。

如果切片后的结果与原来的不同,新的字符串指向新的物理地址(a5)。

如果在当前片索引范围内没有合法值,将返回相应类型的空值(a4)。

测试代码(数组)

b=[1,2,3,4,5]

b1=b[:]

b2=b[:len(b)]

b3=b[:15]

b4=b[16:16]

b5=b[:2]

这是b的id:2260784433096

这是“b”的类型:类“列表”

这是“b”的值:[1,2,3,4,5]

这是“b1”的id:2260784432456

这是“b1”的类型:类“列表”

这是“b1”的值:[1,2,3,4,5]

这是“b2”的id:2260784470920

这是“b2”的类型:类“列表”

这是“b2”的值:[1,2,3,4,5]

这是“b3”的id:2260784534280

这是“b3”的类型:类“列表”

这是“b3”的值:[1,2,3,4,5]

这是“b4”的id:2260784471432

这是“b4”的类型:类“list”

这是“b4”的值:[]

这是“b5”的id:2260784231944

这是“b5”的类型:类“list”

这是“b5”的值:[1,2]

注意:

数组切片操作必须指向新的物理地址。

如果在当前片索引范围内没有合法值,则返回相应类型的空值(b4)。

关于Python切片索引越界(数组下标越界)的实现本文到此为止。有关Python切片索引越界的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: