作者ck574b027 (荒围!定厝!贼!妹!)
看板Python
标题Re: [问题] python slice -- out of range
时间Mon Jun 24 02:00:09 2013
※ 引述《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