我一次又一次地犯这个错误,range(3)[1:2] 不返回 [1,2] 而返回 [1]。有人可以解释这里的逻辑扭曲吗?为什么 m 和 n 不是指具有相同逻辑的第 x 个元素?
请您参考如下方法:
切片和范围是一对数字:要包含的第一个元素,然后是不包含的第一个元素。通过这样做,您可以获得一些不错的好处。首先,切片的长度是end-start。其次,切片 [x:y] 和 [y:z] 将很好地结合在一起而不会重复 y。
最近在 Python-Ideas 上挑战此设计的线程:http://mail.python.org/pipermail/python-ideas/2010-October/008187.html
Edsger Dykstra 以他独特的风格写了这篇文章:http://www.cs.utexas.edu/users/EWD/ewd08xx/EWD831.PDF ,这也说明了为什么第一个元素是 [0]。
