Python对切片命名的实现方法
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 cookbook(数据结构与算法)对切片命名清除索引的方法
本文实例讲述了Python对切片命名清除索引的方法.分享给大家供大家参考,具体如下: 问题:如何清理掉到处都是硬编码的切片索引 解决方案:对切片命名 假设有一些代码用来从字符串的固定位置中取出具体的数据(比如从一个平面文件或类似的格式:平面文件flat file是一种包含没有相对关系结构的记录文件): ########0123456789012345678901234567890123456789012345678901234567890123456789 record='...........
-
Python对切片命名的实现方法
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[
-
Python批量重命名同一文件夹下文件的方法
本文实例讲述了Python批量重命名同一文件夹下文件的方法.分享给大家供大家参考.具体分析如下: 朋友发了一个文件夹过来,里面的图片都以 .tmp 为后缀. 手工修改的话工作量太大.故写了一个 Python 脚本进行批量重命名. 对 Python 的标准库不熟,只能边查资料,或者 help() 边写代码. 三行代码就可以解决这一问题. 不过没有捕获异常.不能迭代同一目录下的所有文件. 代码如下: import os for file in os.listdir("."): if os.
-
Python 利用切片从列表中取出一部分使用的方法
我想从列表中取出一部分拿来使用,可以创建切片,指定需要使用的第一个元素和最后一个元素的索引 使用例子,说明切片的使用 #创建一个数字列表,代表我有100页文章,然后进行分页显示 mage=list(range(1,101)) max_count=len(mage) #使用len()获取列表的长度,上节学的 n=0 while n<max_count: #这里用到了一个while循环,穿越过来的 print(mage[n:n+10]) #这里就用到了切片,这一节的重点 n=n+10 输出: [1,
-
python列表倒序的几种方法(切片、reverse()、reversed())
目录 1.切片 2.使用reverse()方法 3.使用reversed()方法 1.切片 使用切片来实现列表的倒序排序,mylist[start:end:step],不改变原列表. #!/usr/bin/env python # -*- coding:utf-8 -*- if __name__ == '__main__': a = [1, 2, 3, 4, 5, 6] # 使用切片来实现列表倒序 print(a[::-1]) print(a) 输出: [6, 5, 4, 3, 2, 1][1,
-
Python使用正则表达式实现文本替换的方法
本文实例讲述了Python使用正则表达式实现文本替换的方法.分享给大家供大家参考,具体如下: 2D客户端编程从某种意义上来讲就是素材组织,所以,图片素材组织经常需要批量处理,python一定是最佳选择,不管是win/linux/mac都有一个简单的运行环境 举两个应用场景: ① 如果不是在某个文件夹里面则将文件夹名称插入前面 ② 所有的文件名名称加上一个前缀 直接看代码吧: # encoding: UTF-8 import re # 将正则表达式编译成Pattern对象 p = re.compi
-
python类:class创建、数据方法属性及访问控制详解
在Python中,可以通过class关键字定义自己的类,然后通过自定义的类对象类创建实例对象. python中创建类 创建一个Student的类,并且实现了这个类的初始化函数"__init__": class Student(object): count = 0 books = [] def __init__(self, name): self.name = name 接下来就通过上面的Student类来看看Python中类的相关内容. 类构造和
-
python 读写、创建 文件的方法(必看)
python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个文件:os.remove() 删除多个目录:os.removedirs(r"c:\python") 检验给出的路径是否是一个文件:os.path.isfile() 检验给出的路径是否是一个目录:os.path.isdir() 判断是否是绝对路
-
跟老齐学Python之私有函数和专有方法
在任何语言中,都会规定某些对象(属性.方法.函数.类等)只能够在某个范围内访问,出了这个范围就不能访问了.这是"公"."私"之分.此外,还会专门为某些特殊的东西指定一些特殊表示,比如类的名字就不能用class,def等,这就是保留字.除了保留字,python中还为类的名字做了某些特殊准备,就是"专有"的范畴. 私有函数 在某些时候,会看到有一种方法命名比较特别,是以"__"双划线开头的,将这类命名的函数/方法称之为"
-
python 截取 取出一部分的字符串方法
下面是split截取获得 >>> str = 'http://manualfile.s3.amazonaws.com/pdf/gti-chis-1-user-9fb-0-7a05a56f0b91.pdf' >>> print str.split() ['http://manualfile.s3.amazonaws.com/pdf/gti-chis-1-user-9fb-0-7a05a56f0b91.pdf'] >>> print str.split('
随机推荐
- ASP.NET数据库操作类实例
- js修改onclick动作的四种方法(推荐)
- C语言编写多功能日历
- JavaScript对象创建及继承原理实例解剖
- 借助node实战JSONP跨域实例
- 详解浏览器渲染页面过程
- 服务器一大堆错误日志的解决方法
- jQuery实现的左右移动焦点图效果
- IP Spoof技术介绍(IP 欺骗)
- CentOS SSH无密码登录的配置
- 轻松实现Android锁屏功能
- Spring Boot CLI使用教程
- 用Python删除本地目录下某一时间点之前创建的所有文件的实例
- Java Robot应用示例之机器人功能
- Java实现的质因数分解操作示例【基于递归算法】
- crontab定时任务不执行的原因分析与解决方法
- 支付宝APP支付(IOS手机端+java后台)版
- python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
- 分析Mysql事务和数据的一致性处理问题
- Vue.js 2.x之组件的定义和注册图文详解