91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python cookbook對切片命名清除索引的示例分析

發布時間:2021-08-12 12:41:30 來源:億速云 閱讀:261 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關Python cookbook對切片命名清除索引的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

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

解決方案:對切片命名

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

########0123456789012345678901234567890123456789012345678901234567890123456789
record='....................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)
>>> a
slice(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)
>>> a
slice(2, 4, None)
>>> a.start
2
>>> a.stop
4
>>> a.step
>>> b=slice(1,5,2)
>>> b
slice(1, 5, 2)
>>> b.start
1
>>> b.stop
5
>>> b.step
2
>>>

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

>>> items=[0,1,2,3,4,5,6]
>>> a=slice(2,4)
>>> a
slice(2, 4, None)
>>> a.start
2
>>> a.stop
4
>>> a.step
>>> b=slice(1,5,2)
>>> b
slice(1, 5, 2)
>>> b.start
1
>>> b.stop
5
>>> b.step
2
>>> 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])
l
l
>>> for i in range(*b.indices(len(s))):
  print(s[i])
e
l
>>> c=slice(0,8,2)
>>> c
slice(0, 8, 2)
>>> for i in range(*c.indices(len(s))):
  print(s[i])
H
l
o
o
>>>

關于“Python cookbook對切片命名清除索引的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海阳市| 泽普县| 晋中市| 孟连| 西贡区| 镇康县| 博罗县| 汪清县| 彝良县| 襄汾县| 化州市| 新竹市| 保德县| 濮阳市| 萨嘎县| 镇沅| 奉新县| 南漳县| 南川市| 秭归县| 灵武市| 阿拉善右旗| 湄潭县| 八宿县| 于都县| 内乡县| 宁波市| 阳春市| 克山县| 中卫市| 即墨市| 宁海县| 赫章县| 庆安县| 江华| 会昌县| 合江县| 新民市| 高州市| 教育| 阜南县|