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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。