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 paramiko实现ssh远程访问的方法
Dec 03 Python
Python多线程实例教程
Sep 06 Python
Python base64编码解码实例
Jun 21 Python
Python中type的构造函数参数含义说明
Jun 21 Python
python实现的简单RPG游戏流程实例
Jun 28 Python
python爬虫_自动获取seebug的poc实例
Aug 05 Python
python K近邻算法的kd树实现
Sep 06 Python
浅谈python中拼接路径os.path.join斜杠的问题
Oct 23 Python
python批量修改图片尺寸,并保存指定路径的实现方法
Jul 04 Python
windows下python虚拟环境virtualenv安装和使用详解
Jul 16 Python
深度学习小工程练习之垃圾分类详解
Apr 14 Python
Python面向对象编程之类的概念
Nov 01 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+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
2006/12/16 PHP
6个超实用的PHP代码片段
2015/08/10 PHP
php通过文件头判断格式的方法
2016/05/28 PHP
php获取开始与结束日期之间所有日期的方法
2016/11/29 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
讨论javascript(一)工厂方式 js面象对象的定义方法
2009/12/15 Javascript
自用js开发框架小成 学习js的朋友可以看看
2010/11/16 Javascript
ajax的hide隐藏问题解决方法
2012/12/11 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
2016/01/12 Javascript
ionic js 模型 $ionicModal 可以遮住用户主界面的内容框
2016/06/06 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
基于element-ui的rules中正则表达式
2018/09/04 Javascript
vue自定义指令用法经典实例小结
2019/03/16 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
Vue全局loading及错误提示的思路与实现
2019/08/09 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
Python3.6简单反射操作示例
2018/06/14 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
2018/10/15 Python
python树莓派红外反射传感器
2019/01/21 Python
python使用requests模块实现爬取电影天堂最新电影信息
2019/04/03 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
学习Django知识点分享
2019/09/11 Python
keras模型可视化,层可视化及kernel可视化实例
2020/01/24 Python
python 代码运行时间获取方式详解
2020/09/18 Python
用css3写出气球样式的示例代码
2017/09/11 HTML / CSS
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
时尚孕妇装:HATCH Collection
2019/09/24 全球购物
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
2014年公司迎新年活动方案
2014/02/24 职场文书
护理学专业求职信
2014/06/29 职场文书
2019求职信大礼包
2019/05/15 职场文书
python中取整数的几种方法
2021/11/07 Python
让JavaScript代码更加精简的方法技巧
2022/06/01 Javascript