Re: [問題] python slice -- out of range
※ 引述《Arim (Arim5566)》之銘言:
: 各位版友好
: 最近很常用python的slice
: 想要請教一下
: a=[1,2,3,4]
: a[0:99] # [1,2,3,4]
: 貌似如果超過範圍也沒關係,會印出全部的資料
: 所以在任何情況下其實我如果要從某個index印出全部的資料的話
: 例如a[1:99] #從第1筆資料印到最後一筆,其實我這個slice的第二個index可以隨便
: 亂給?
: 請問python這樣子設計的原因是?
: 謝謝
http://docs.python.org/2/reference/datamodel.html#object.__getslice__
這是古早的python用來實作slice的special method,
他提到若沒有第二個index時會用sys.maxint而不是該序列的長度,
會如此作應該是因為拿長度會浪費效率(O(n)),不如直接用個大數(O(1))。
因此第二個index可大於長度即為這種做法的side effect。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.194.13.159
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):