最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)對切片命名清除索引的方法

 更新時間:2018年03月13日 09:36:06   作者:壟上行  
這篇文章主要介紹了Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)對切片命名清除索引的方法,結(jié)合實(shí)例形式分析了Python字符串截取及indices方法映射序列的相關(guān)操作技巧,需要的朋友可以參考下

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

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

解決方案:對切片命名

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

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

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

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

一般來說,內(nèi)置的slice()函數(shù)會創(chuàng)建一個切片對象,可以用在任何允許進(jìn)行切片操作的地方。

>>> 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對象的實(shí)例s,可以分別通過s.start、s.stop以及s.step屬性來得到關(guān)于該對象的信息。

>>> 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)元組,所有的值都已經(jīng)恰當(dāng)?shù)叵拗圃谶吔缫詢?nèi)(當(dāng)做索引操作時可避免出現(xiàn)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》)

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Python 中 Meta Classes詳解

    Python 中 Meta Classes詳解

    首先,在認(rèn)識metaclass之前,你需要認(rèn)識下python中的class。python中class的奇怪特性借鑒了smalltalk語言。大多數(shù)語言中,classes僅僅是用于描述怎樣創(chuàng)建一個對象的代碼端。在某種程度上說,python中的class也是這樣的。
    2016-02-02
  • python實(shí)現(xiàn)kMeans算法

    python實(shí)現(xiàn)kMeans算法

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)kMeans算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • python 畫三維圖像 曲面圖和散點(diǎn)圖的示例

    python 畫三維圖像 曲面圖和散點(diǎn)圖的示例

    今天小編就為大家分享一篇python 畫三維圖像 曲面圖和散點(diǎn)圖的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python Dataframe 合并與去重詳情

    python Dataframe 合并與去重詳情

    這篇文章主要介紹了python Dataframe 合并與去重詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定參考價值,需要的朋友可以參考一下
    2022-08-08
  • Python流程控制語句的深入講解

    Python流程控制語句的深入講解

    這篇文章主要給大家介紹了關(guān)于Python流程控制語句的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Python使用Tkinter制作一個進(jìn)制轉(zhuǎn)換工具

    Python使用Tkinter制作一個進(jìn)制轉(zhuǎn)換工具

    在平時工作學(xué)習(xí)當(dāng)中,我們經(jīng)常會編寫一些簡單的 Python GUI 工具,以此來完成各種各樣的自動化任務(wù),下面我們就來看看如何使用Python制作一個進(jìn)制轉(zhuǎn)換工具吧
    2024-01-01
  • 詳解Python編程中對Monkey Patch猴子補(bǔ)丁開發(fā)方式的運(yùn)用

    詳解Python編程中對Monkey Patch猴子補(bǔ)丁開發(fā)方式的運(yùn)用

    Monkey Patch猴子補(bǔ)丁方式是指在不修改程序原本代碼的前提下,通過添加類或模塊等方式在程序運(yùn)行過程中加入代碼,下面就來進(jìn)一步詳解Python編程中對Monkey Patch猴子補(bǔ)丁開發(fā)方式的運(yùn)用
    2016-05-05
  • Python中Tkinter的面向?qū)ο缶幊虇栴}與解決方案

    Python中Tkinter的面向?qū)ο缶幊虇栴}與解決方案

    在Python的GUI開發(fā)中,Tkinter是一個廣泛使用的標(biāo)準(zhǔn)庫,結(jié)合面向?qū)ο缶幊痰乃枷?可以使Tkinter的代碼更加模塊化和易于維護(hù),然而,在實(shí)際應(yīng)用中,OOP與Tkinter的結(jié)合也會帶來一些常見的問題,本文將通過具體的代碼案例,分析這些問題,并提供相應(yīng)的解決方案
    2024-12-12
  • python如何可視化經(jīng)緯度信息

    python如何可視化經(jīng)緯度信息

    在Python中處理經(jīng)緯度信息,首先通過篩選得到符合條件的停車點(diǎn),并去除重復(fù)數(shù)據(jù),利用這些數(shù)據(jù)點(diǎn)的索引值將原始數(shù)據(jù)進(jìn)行分段,并繪制地圖,處理重復(fù)數(shù)據(jù)時可以使用set()方法或列表生成式,最后,可以通過DataFrame的join方法合并具有相同索引值的數(shù)據(jù)
    2024-09-09
  • Python中偏函數(shù)用法示例

    Python中偏函數(shù)用法示例

    這篇文章主要介紹了Python中偏函數(shù)用法,結(jié)合實(shí)例形式分析了Python基于functools模塊創(chuàng)建和使用偏函數(shù)的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-06-06

最新評論

扶绥县| 同德县| 鄄城县| 安阳县| 积石山| 瓦房店市| 呈贡县| 太白县| 仙桃市| 广丰县| 惠水县| 肇州县| 武宣县| 长沙市| 东安县| 石城县| 邳州市| 都安| 涞源县| 景泰县| 比如县| 东乡| 吴忠市| 合川市| 六枝特区| 广灵县| 枣阳市| 冕宁县| 弥勒县| 呼玛县| 凭祥市| 台东市| 霸州市| 新巴尔虎右旗| 芜湖市| 莱芜市| 衢州市| 慈利县| 和平县| 彭泽县| 灵寿县|