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

发布时间:2022-04-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Python 切片索引越界的问题(数组下标越界)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

前言

Python语言处理字符串、数组类的问题时有一定概率需要使用切片方法,比如:Leetcode_5。
学习官方解法时发现切片的索引可以超出字符串或数组最大索引值,此时编译器不会报错。
欢迎大佬留言说明这种情况的具体原因,本文只进行一些情况的简单测试。

实例代码

@H_126_10@
a = '123'
b = a[:5]
PRint(b)

发现结果为123,编译器没有报错。而当直接使用a[5]时即报错string index out of range。下面是测试结果。

测试代码(字符串)

a = "1234567890"
a1 = a[:]
a2 = a[:len(a)]
a3 = a[:15]
a4 = a[16:16]
a5 = a[:2]

运行结果:

This is the id of 'a' :  2707772994160
This is the tyPE of 'a' :  <class 'str'>
This is the value of 'a' :  1234567890

This is the id of 'a1' :  2707772994160
This is the type of 'a1' :  <class 'str'>
This is the value of 'a1' :  1234567890

This is the id of 'a2' :  2707772994160
This is the type of 'a2' :  <class 'str'>
This is the value of 'a2' :  1234567890

This is the id of 'a3' :  2707772994160
This is the type of 'a3' :  <class 'str'>
This is the value of 'a3' :  1234567890

This is the id of 'a4' :  2707740774832
This is the type of 'a4' :  <class 'str'>
This is the value of 'a4' : 

This is the id of 'a5' :  2707773122544
This is the type of 'a5' :  <class 'str'>
This is the value of '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]

This is the id of 'b' :  2260784433096
This is the type of 'b' :  <class 'list'>
This is the value of 'b' :  [1, 2, 3, 4, 5]

This is the id of 'b1' :  2260784432456
This is the type of 'b1' :  <class 'list'>
This is the value of 'b1' :  [1, 2, 3, 4, 5]

This is the id of 'b2' :  2260784470920
This is the type of 'b2' :  <class 'list'>
This is the value of 'b2' :  [1, 2, 3, 4, 5]

This is the id of 'b3' :  2260784534280
This is the type of 'b3' :  <class 'list'>
This is the value of 'b3' :  [1, 2, 3, 4, 5]

This is the id of 'b4' :  2260784471432
This is the type of 'b4' :  <class 'list'>
This is the value of 'b4' :  []

This is the id of 'b5' :  2260784231944
This is the type of 'b5' :  <class 'list'>
This is the value of 'b5' :  [1, 2]

值得注意的地方:

  • 数组切片操作必定指向新的物理地址。
  • 若当前切片索引范围内不存在合法数值,则返回相应类型的空值(b4)。

到此这篇关于Python 切片索引越界的实现(数组下标越界)的文章就介绍到这了,更多相关Python 切片索引越界内容请搜索脚本宝典以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本宝典!

脚本宝典总结

以上是脚本宝典为你收集整理的Python 切片索引越界的问题(数组下标越界)全部内容,希望文章能够帮你解决Python 切片索引越界的问题(数组下标越界)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: