Python對切片命名的實(shí)現(xiàn)方法
1、需求
我們的代碼已經(jīng)變得無法閱讀,到處都是硬編碼的切片索引,我們想優(yōu)化他們。
2、解決方案
代碼中如果有很多硬編碼的索引值,將導(dǎo)致可讀性和維護(hù)性都不佳。
內(nèi)置的slice()函數(shù)會創(chuàng)建一個(gè)切片對象,可以用在任何運(yùn)行進(jìn)行切片操作的地方。
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)
運(yùn)行結(jié)果:
[2, 3] [2, 3] [0, 1, 10, 11, 12, 13, 4, 5, 6] [12, 13] [0, 1, 12, 13, 4, 5, 6]
如果有一個(gè)slice對象的實(shí)例s。可以分別通過s.start、s.stop以及s.step屬性得到關(guān)于該對象的信息。例如:
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)
結(jié)果:
[2, 5] 2 8 3
此外,可以通過使用indices(size)方法將切片映射到特定大小的序列上。這會返回一個(gè)(start,stop,step)元組,所有的值都已經(jīng)恰當(dāng)?shù)叵拗圃谶吔缫詢?nèi)(當(dāng)做索引操作時(shí)可避免出現(xiàn)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])
結(jié)果:
(2, 5, 1) 2:l 3:l 4:o
相關(guān)文章
Python通過psd-tools解析PSD文件的實(shí)現(xiàn)
本文主要介紹了Python通過psd-tools解析PSD文件的實(shí)現(xiàn),主要包括如何獲取PSD文件的基本信息、遍歷圖層、提取圖層詳細(xì)信息、保存和創(chuàng)建PSD文件,感興趣的可以了解一下2023-12-12
Python Social Auth構(gòu)建靈活而強(qiáng)大的社交登錄系統(tǒng)實(shí)例探究
這篇文章主要為大家介紹了Python Social Auth構(gòu)建靈活而強(qiáng)大的社交登錄系統(tǒng)實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
使用Python3+PyQT5+Pyserial 實(shí)現(xiàn)簡單的串口工具方法
今天小編就為大家分享一篇使用Python3+PyQT5+Pyserial 實(shí)現(xiàn)簡單的串口工具方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02
使用django-suit為django 1.7 admin后臺添加模板
前面我們介紹了Django-grappelli給admin添加模板,可是使用中發(fā)現(xiàn)inline有點(diǎn)問題,所以就換了今天我們要談的Django-suit,貌似要稍微好一些2014-11-11
OpenCV中resize函數(shù)插值算法的實(shí)現(xiàn)過程(五種)
最新版OpenCV2.4.7中,cv::resize函數(shù)有五種插值算法:最近鄰、雙線性、雙三次、基于像素區(qū)域關(guān)系、蘭索斯插值。感興趣的可以了解一下2021-06-06
基于python寫個(gè)國慶假期倒計(jì)時(shí)程序
國慶假期快到了,想查查還有幾天幾小時(shí)到假期,這對程序員小菜一碟,輕輕松松用python寫個(gè)倒計(jì)時(shí)程序(天、時(shí)、分、秒),助你熬到假期2021-09-09

