> >>>>> s = "Jack Brandom" > >>>>> s[3 : -13 : -1] > >> 'kcaJ' > >> I have no idea how to replace that -13 with a positive index. Is it > >> possible at all? That's not possible because a positive index is relative to the leftmost item 0
Below is some rules of slice usage which I collected sometimes ago. ----- slice s[i:j:k] The result is from start index i to stop index j (excluded) in step k (default is 1). i, j, k can be positive or negative. For example: s = [1, 2, 3, 4, 5] 1. Positive index is relative to the leftmost item (0), negative index is relative to the rightmost item (-1). Note: out-of-range index is valid. s[-4:5] == s[1:5] == [2,3,4,5] # index 5 is out-of-range s[4:-6:-1] == [5,4,3,2,1] # index -6 is out-of-range 2. The default index of i and j (When index is omitted) was decided by the sign of k. For positive k, the start index is 0 (the leftmost item) and the stop index is the one after the rightmost item. s[:3] == s[0:3] == [1,2,3] s[1:] == s[1:5] == [2,3,4,5] For negative k, the start index is -1 (the rightmost item) and the stop index is one ahead of the leftmost item s[:2:-1] == s[-1:2:-1] == [5,4] s[3::-1] == s[3:-6:-1] == [4,3,2,1] 3. The items pick-up order was decided by the sign of k. For positive k, the direction is toward the right. For negative k, it is toward the left. s[1:4] == [2,3,4] s[3:0:-1] == [4,3,2] 4. Invalid slice will return an empty [] s[2:0] == [] ----- --Jach -- https://mail.python.org/mailman/listinfo/python-list