您好,登錄后才能下訂單哦!
本篇內容主要講解“為什么Python數組下標從0開始”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“為什么Python數組下標從0開始”吧!
Python的前身之一,ABC語言使用的是以1為首位的數組索引方式(1-based),而對Python有著巨大影響的C語言則使用的是0-based。我早期開發的程序語言(Algol、Fortran、Pascal)有的使用1-based,有的則比較靈活。我認為切片語法是我做出這個決定的原因之一。
我們先來看看切片語法的使用吧。它最常見的使用應該是“切出數組的前n位”和“切出數組第i位后的 n位”(前者是后者在i==起始位下的特例)。如果我們不需要使用難看的+1或-1補償方式,那么代碼就會美觀許多。
通過使用0-based索引法,Python的半開區間以及缺省匹配區間都很美觀,如:a[:n] 和a[i:i+n];前者是a[0:n]的省略寫法。
在1-based索引法下,如果你想用a[:n]來表示切出前n個元素的話,你只能選擇在切片語法中使用切片起始位和切片長度2個參數,或者閉區間的用法。使用1-based索引法,半開區間切片語法就顯得不夠美觀。同樣地,使用閉區間切片語法的話,你只能用a[i:i+n-1]來表示從第i位取n個元素。所以如果使用1-based索引法的話,使用切片長度更合適。你可以寫成a[i:n]。事實上,ABC語言就是這樣的——它用了一種特殊的用法,寫為a@i|n。(參考http://homepages.cwi.nl/~steven/abc/qr.html#EXPRESSIONS)
但是index:length的用法適合其它情況嗎?老實說,我不太記得了,但我想我當時的確很喜歡它美觀的半開區間語法。特別是兩個切片操作位置相鄰并且***個切片操作的終點索引就是第二個切片的起點索引的時候,它的寫法實在是太漂亮了。比如,你想以i , j兩點來切分一個數組的話,它們將會是a[:i]、a[i:j]、和 a[j:]。
這就是Python 使用0-based索引法的原因。
到此,相信大家對“為什么Python數組下標從0開始”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。