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实现删除文件与目录的方法
Nov 10 Python
django项目运行因中文而乱码报错的几种情况解决
Nov 07 Python
python的文件操作方法汇总
Nov 10 Python
Python语言描述KNN算法与Kd树
Dec 13 Python
python寻找list中最大值、最小值并返回其所在位置的方法
Jun 27 Python
彻彻底底地理解Python中的编码问题
Oct 15 Python
windows下搭建python scrapy爬虫框架步骤
Dec 23 Python
python批量修改图片尺寸,并保存指定路径的实现方法
Jul 04 Python
pytorch: Parameter 的数据结构实例
Dec 31 Python
python opencv实现信用卡的数字识别
Jan 12 Python
使用Python实现牛顿法求极值
Feb 10 Python
python使用Geany编辑器配置方法
Feb 21 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+Redis 消息队列 实现高并发下注册人数统计的实例
2018/01/29 PHP
javascript自启动函数的问题探讨
2013/10/05 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
2015/03/16 Javascript
jQuery实现文本展开收缩特效
2015/06/03 Javascript
easyui Draggable组件实现拖动效果
2015/08/19 Javascript
require.js的用法详解
2015/10/20 Javascript
Jquery和angularjs获取check框选中的值的方法汇总
2016/01/17 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
2016/07/22 Javascript
Bootstrap 填充Json数据的实例代码
2017/01/11 Javascript
jQuery监听浏览器窗口大小的变化实例
2017/02/07 Javascript
Bootstrap面板(Panels)的简单实现代码
2017/03/17 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
vue组件表单数据回显验证及提交的实例代码
2018/08/30 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
基于react项目打包css引用路径错误解决方案
2020/10/28 Javascript
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python探索之URL Dispatcher实例详解
2017/10/28 Python
Python管理Windows服务小脚本
2018/03/12 Python
python判断无向图环是否存在的示例
2019/11/22 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
2020/06/14 Python
Python中Yield的基本用法
2020/10/18 Python
Python numpy大矩阵运算内存不足如何解决
2020/11/19 Python
html5小技巧之通过document.head获取head元素
2014/06/04 HTML / CSS
澳大利亚百货公司:David Jones
2018/02/08 全球购物
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
电气工程师岗位职责
2014/01/01 职场文书
楼面部长岗位职责范本
2014/02/14 职场文书
2014预备党员批评与自我批评思想汇报
2014/09/20 职场文书
商品陈列协议书
2014/09/29 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
趣味运动会广播稿
2015/08/19 职场文书
Python快速实现一键抠图功能的全过程
2021/06/29 Python