亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

涞水县| 青河县| 隆化县| 彭州市| 咸阳市| 溧水县| 周宁县| 靖远县| 斗六市| 香河县| 彩票| 精河县| 屯门区| 新化县| 兴和县| 榆社县| 墨竹工卡县| 建德市| 精河县| 武城县| 宕昌县| 郴州市| 永胜县| 广水市| 油尖旺区| 宜丰县| 砚山县| 芜湖县| 邛崃市| 白朗县| 宝坻区| 阿拉善左旗| 赤峰市| 辽宁省| 舟山市| 巴林右旗| 上杭县| 永康市| 祁连县| 武城县| 武安市|