John wrote: > Hi, > > I am new to Python, and I believe it's an easy question. I know R and > Matlab. > > ************ >>>> x=[1,2,3,4,5,6,7] >>>> x[0] > 1 >>>> x[1:5] > [2, 3, 4, 5] > ************* > > My question is: what does x[1:5] mean? By Python's convention, the > first element of a list is indexed as "0". Doesn't x[1:5] mean a > sub-list of x, indexed 1,2,3,4,5? If I am right, it should print > [2,3,4,5,6]. Why does it print only [2,3,4,5]?
Python uses half-open intervals, i. e. the first index is included, but the last index is not: x[1:5] == [x[1], x[2], x[3], x[4]] The advantage of this convention is that it allows easy splitting and length spefication. >>> items [0, 10, 20, 30, 40, 50, 60, 70, 80, 90] To swap the head and tail: >>> gap = 5 >>> items[gap:] + items[:gap] [50, 60, 70, 80, 90, 0, 10, 20, 30, 40] To extract a stride of a given length: >>> start = 2 >>> length = 3 >>> items[start: start + length] [20, 30, 40] The disadvantage is that not everybody follows this convention... -- https://mail.python.org/mailman/listinfo/python-list