Python實作對切片命名的方法

不言
發布: 2018-10-15 14:17:53
轉載
2139 人瀏覽過

這篇文章帶給大家的內容是關於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實作對切片命名的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:segmentfault.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板