国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python cookbook(數據結構與算法)對切片命名清除索引的方法

2020-01-04 15:40:39
字體:
來源:轉載
供稿:網友

本文實例講述了Python對切片命名清除索引的方法。分享給大家供大家參考,具體如下:

問題:如何清理掉到處都是硬編碼的切片索引

解決方案:對切片命名

假設有一些代碼用來從字符串的固定位置中取出具體的數據(比如從一個平面文件或類似的格式:平面文件flat file是一種包含沒有相對關系結構的記錄文件):

########0123456789012345678901234567890123456789012345678901234567890123456789record='....................100.......513.25..........'cost=int(record[20:23])*float(record[30:36])

與其這樣做,倒不如對切片進行命名:避免了使用許多神秘難懂的硬編碼索引,代碼變得清晰許多。

SHARES=slice(20,23) #對切片命名PRICE=slice(30,36) #對切片命名cost=int(record[SHARES])*float(record[PRICE])

一般來說,內置的slice()函數會創建一個切片對象,可以用在任何允許進行切片操作的地方。

>>> items=[0,1,2,3,4,5,6]>>> a=slice(2,4)>>> aslice(2, 4, None)>>> items[a][2, 3]>>> items[2:4][2, 3]>>> items[a]=[77,88]>>> items[0, 1, 77, 88, 4, 5, 6]>>> del items[a]>>> items[0, 1, 4, 5, 6]>>> 

如果有一個slice對象的實例s,可以分別通過s.starts.stop以及s.step屬性來得到關于該對象的信息。

>>> items=[0,1,2,3,4,5,6]>>> a=slice(2,4)>>> aslice(2, 4, None)>>> a.start2>>> a.stop4>>> a.step>>> b=slice(1,5,2)>>> bslice(1, 5, 2)>>> b.start1>>> b.stop5>>> b.step2>>> 

另外,可以通過使用indices(size)方法將切片映射到特定大小的序列上。這會返回一個(start,stop,step)元組,所有的值都已經恰當地限制在邊界以內(當做索引操作時可避免出現IndexError異常)

>>> items=[0,1,2,3,4,5,6]>>> a=slice(2,4)>>> aslice(2, 4, None)>>> a.start2>>> a.stop4>>> a.step>>> b=slice(1,5,2)>>> bslice(1, 5, 2)>>> b.start1>>> b.stop5>>> b.step2>>> s='HelloWorld'>>> a.indices(len(s))(2, 4, 1)>>> b.indices(len(s))(1, 5, 2)>>> items[a][2, 3]>>> items[b][1, 3]>>> for i in range(*a.indices(len(s))):  print(s[i])ll>>> for i in range(*b.indices(len(s))):  print(s[i])el>>> c=slice(0,8,2)>>> cslice(0, 8, 2)>>> for i in range(*c.indices(len(s))):  print(s[i])Hloo>>> 

希望本文所述對大家Python程序設計有所幫助。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 延寿县| 文山县| 勃利县| 永寿县| 喀喇沁旗| 莱州市| 垣曲县| 云安县| 璧山县| 桦南县| 宁陕县| 江北区| 凤凰县| 林州市| 福建省| 清远市| 潜山县| 山东省| 江阴市| 九龙城区| 涡阳县| 同心县| 宁都县| 长子县| 德庆县| 中宁县| 和静县| 舒兰市| 通许县| 长寿区| 屏山县| 晴隆县| 星座| 横山县| 乃东县| 阳信县| 定西市| 巩义市| 扬州市| 阿城市| 蛟河市|