Steven Bethard wrote: > "The slice of s from i to j with step k is defined as the sequence of > items with index x = i + n*k such that 0 <= n < (j-i)/k." > > This seems to contradict list behavior though. > range(10)[9:-1:-2] == []
No, both is correct. But we don't have to interpret the second slice argument m as the limit j of the above definition. For positive values of m the identity m==j holds. For negative values of m we have j = max(0,i+m). This is consistent with the convenient negative indexing: >>> range(9)[-1] == range(9)[8] If we remember how -1 is interpreted as an index not as some limit the behaviour makes perfect sense. Kay -- http://mail.python.org/mailman/listinfo/python-list