这里涉及到切片对象slice:

a = '0123456789'

r = slice(-100, 100) # -100:100

a_new = a[r] # 取缺省值a[:]

print(a_new, a[:])

r = slice(100, 200) # 100:200

a_new = a[r] # 取缺省值a[len(a):len(a)]

print(a_new, a[len(a):len(a)])

list 中的具体处理方式:

/* 取自ListObject.c */

static PyObject *

list_slice(PyListObject *a, Py_ssize_t ilow, Py_ssize_t ihigh)

{

PyListObject *np;

PyObject **src, **dest;

Py_ssize_t i, len;

if (ilow < 0)

ilow = 0;

else if (ilow > Py_SIZE(a)) // 如果ilow大于a长度, 那么重新赋值为a的长度

ilow = Py_SIZE(a);

if (ihigh < ilow)

ihigh = ilow;

else if (ihigh > Py_SIZE(a)) // 如果ihigh大于a长度, 那么重新赋值为a的长度

ihigh = Py_SIZE(a);

len = ihigh - ilow;

np = (PyListObject *) PyList_New(len); // 创建一个ihigh - ilow的新列表对象

if (np == NULL)

return NULL;

src = a->ob_item + ilow;

dest = np->ob_item;

for (i = 0; i < len; i++) { // 将a处于该范围内的成员, 添加到新列表对象

PyObject *v = src[i];

Py_INCREF(v);

dest[i] = v;

}

return (PyObject *)np;

}

python下标越界怎么解决_切片python字符串时 为何不会引起下标越界?相关推荐

  1. python: 关于解决‘\u‘开头的字符串转中文的方法

    python: 关于解决'\u'开头的字符串转中文的方法 参考文章: (1)python: 关于解决'\u'开头的字符串转中文的方法 (2)https://www.cnblogs.com/hahaxz ...

  2. python判断复数浮点数_荐Python数据类型(整数,浮点数,复数,字符串,format()用法)(超详细笔记)...

    一.整数类型 1.与数学中的整数概念一致,没有取值范围限制. 2.整数类型共有4种进制表示:十进制.二进制.八进制. 十六进制,默认十进制,其他进制需增加引导符(不区分 大小写) 二进制 0b或0B, ...

  3. python怎么避免浅拷贝_详谈Python中的深拷贝和浅拷贝

    在平时工作中,经常涉及到数据的传递,在数据传递使用过程中,可能会发生数据被修改的问题.为了防止数据被修改,就需要在传递一个副本,即使副本被修改,也不会影响原数据的使用.为了生成这个副本,就产生了拷贝. ...

  4. python大牛 关东升_《Python从小白到大牛》第4章 Python语法基础

    本章主要为大家介绍Python的一些语法,其中包括标识符.关键字.常量.变量.表达式.语句.注释.模块和包等内容. 标识符和关键字 任何一种计算机语言都离不开标识符和关键字,因此下面将详细介绍Pyth ...

  5. python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议

    <Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  <Python之禅>中对于Pyt ...

  6. 以下选项中python用于异常处理结构_《Python 程序设计》复习题

    目录 填空题 一.基础知识 二.序列 三.选择结构与循环结构和函数及面向对象.文件 选择题 一.Python 基础语法 二.基本数据类型 三.程序的控制结构 四.函数和代码复用 五.组合数据类型 六. ...

  7. python网格搜索核函数_(转载)Python机器学习笔记GridSearchCV(网格搜索)

    转载声明 介绍 在机器学习模型中,需要人工选择的参数称为超参数.比如随机森林中决策树的个数,人工神经网络模型中隐藏层层数和每层的节点个数,正则项中常数大小等等,他们都需要事先指定.超参数选择不恰当,就 ...

  8. python delimiter分隔符用法_使用Python文件读写,自定义分隔符(custom delimiter)

    众所周知,python文件读取文件的时候所支持的newlines(即换行符),是指定的.这一点不管是从python的doucuments上还是在python的源码中(作者是参考了python的io版本 ...

  9. python中级项目下载_中级Python复习:教程,项目思想和技巧

    python中级项目下载 本文旨在向Python初学者和开发人员介绍Python中使用的一些关键概念,这些概念一开始就没有讲授. 如果您可以创建二次方根求解器,则可以理解本文. 这些是我一天之内没有学 ...

最新文章

  1. Deep TEN: Texture Encoding Network
  2. Angular双向数据绑定原理
  3. java plug in错误_Eclipse启动失败 - 在安装BlackBerry Java Plug-in for Eclipse v1.3之后
  4. 每一对顶点之间的最短路径
  5. lasso特征选择python_转:结合Scikit-learn介绍几种常用的特征选择方法-2
  6. Hive 内置函数权威指南,操作大全
  7. Python+Opencv图像处理新手入门教程(一):介绍,安装与起步
  8. 设计模式(Design Patterns)总结归纳
  9. jsp购物车加mysql_网上购物车(jsp+servlet+mysql)
  10. linux操作系统和ucos操作系统,嵌入式操作系统ucos与linux比较
  11. nmap扫描主机存活情况
  12. android -------- ConstraintLayout 宽高比和偏移量比(三)
  13. xhEditor用法-可视化HTML编辑器
  14. 网上商城-java基础练习项目-仿照雷蛇商城
  15. MTK6577 编译报错
  16. 席位分配问题——惯例Q值法和d'hondt法的MATLAB程序
  17. (JZ1162)2018.07.07【2018提高组】模拟B组 1.【NOI2002】贪吃的九头龙
  18. contest 12.31
  19. 电容震动音的滋滋声音的原因与消除
  20. Unity 2018之ShaderGraph使用基础

热门文章

  1. go是面向对象语言吗?
  2. 新iPhone设计图这么丑?!你信吗?
  3. excel打开一次空白需再次打开
  4. 浙江中医药大学程序设计代表队2018年训练赛三十一
  5. 从“小螺栓血案”谈装配体模型连接螺栓6个正确的处理方法
  6. CentOS--iperf带宽测试
  7. python重启路由器_linux下的python里面如何用相关的网络模块来重启tp-link路由器?...
  8. 手把手:四色猜想、七桥问题…程序员眼里的图论,了解下?
  9. OpenWRT之procd服务
  10. 员工绩效考核计算机二级考试题解析,绩效管理考试试题及答案解析.doc