Python对切片命名的实现方法


Posted in Python onOctober 16, 2018

1、需求

我们的代码已经变得无法阅读,到处都是硬编码的切片索引,我们想优化他们。

2、解决方案

代码中如果有很多硬编码的索引值,将导致可读性和维护性都不佳。

内置的slice()函数会创建一个切片对象,可以用在任何运行进行切片操作的地方。

items=[0,1,2,3,4,5,6]
a=slice(2,4)
print(items[2:4])
print(items[a])
 
items[a]=[10,11,12,13]
print(items)
 
del items[a]
print(items[a])
print(items)

运行结果:

[2, 3]
[2, 3]
[0, 1, 10, 11, 12, 13, 4, 5, 6]
[12, 13]
[0, 1, 12, 13, 4, 5, 6]

如果有一个slice对象的实例s。可以分别通过s.start、s.stop以及s.step属性得到关于该对象的信息。例如:

items=[0,1,2,3,4,5,6]
a=slice(2,8,3)
print(items[a])
print(a.start)
print(a.stop)
print(a.step)

结果:

[2, 5]
2
8
3

此外,可以通过使用indices(size)方法将切片映射到特定大小的序列上。这会返回一个(start,stop,step)元组,所有的值都已经恰当地限制在边界以内(当做索引操作时可避免出现IndexError异常),例如:

s='HelloWorld'
a=slice(2,5)
print(a.indices(len(s)))
for i in range(*a.indices(len(s))):
  print(str(i)+":"+s[i])

结果:

(2, 5, 1)
2:l
3:l
4:o
Python 相关文章推荐
Python urllib模块urlopen()与urlretrieve()详解
Nov 01 Python
跟老齐学Python之玩转字符串(3)
Sep 14 Python
在Django中使用Sitemap的方法讲解
Jul 22 Python
简单介绍使用Python解析并修改XML文档的方法
Oct 15 Python
利用python画一颗心的方法示例
Jan 31 Python
pip命令无法使用的解决方法
Jun 12 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
Oct 15 Python
python实现求特征选择的信息增益
Dec 18 Python
Python求正态分布曲线下面积实例
Nov 20 Python
python IDLE添加行号显示教程
Apr 25 Python
OpenCV读取与写入图片的实现
Oct 13 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
Nov 24 Python
Python 给某个文件名添加时间戳的方法
Oct 16 #Python
解决python os.mkdir创建目录失败的问题
Oct 16 #Python
python连接mongodb密码认证实例
Oct 16 #Python
Python使用gRPC传输协议教程
Oct 16 #Python
python使用epoll实现服务端的方法
Oct 16 #Python
Python 访问限制 private public的详细介绍
Oct 16 #Python
对django中render()与render_to_response()的区别详解
Oct 16 #Python
You might like
php外部执行命令函数用法小结
2016/10/11 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
$.ajax json数据传递方法
2008/11/19 Javascript
jQuery+jqmodal弹出窗口实现代码分明
2010/06/14 Javascript
Javascript连接多个数组不用concat来解决
2014/03/24 Javascript
Javascript基础教程之while语句
2015/01/18 Javascript
js父页面中使用子页面的方法
2016/01/09 Javascript
常用原生JS兼容性写法汇总
2016/04/27 Javascript
JavaScript与java语言有什么不同
2016/09/22 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
js中作用域的实例解析
2017/03/16 Javascript
javascript使用btoa和atob来进行Base64转码和解码
2017/03/20 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
vue项目移动端实现ip输入框问题
2019/03/19 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
2019/11/06 Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
2019/12/06 Javascript
python 字典(dict)按键和值排序
2016/06/28 Python
python处理html转义字符的方法详解
2016/07/01 Python
详解python进行mp3格式判断
2016/12/23 Python
Python中交换两个元素的实现方法
2018/06/29 Python
Pycharm更换python解释器的方法
2018/10/29 Python
Python实现Wordcloud生成词云图的示例
2020/03/30 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
python中xlrd模块的使用详解
2021/02/01 Python
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
学习党章思想汇报
2014/01/07 职场文书
小区消防演习方案
2014/02/21 职场文书
2014庆六一活动方案
2014/03/02 职场文书
《李时珍夜宿古寺》教学反思
2014/04/09 职场文书
幼儿园户外活动总结
2014/07/04 职场文书
工作检讨书大全
2015/01/26 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js
适合后台管理系统开发的12个前端框架(小结)
2021/06/29 Javascript
JavaWeb 入门篇(3)ServletContext 详解 具体应用
2021/07/16 Java/Android