Szabolcs Nagy wrote: > with the current syntax L[i:i+1] returns [L[i]], with nxlist it returns > L[i+1] if i<0. > > L=range(10) > L[1:2]==[L[1]]==[1] > L[-2:-1]==[L[-2]]==[8] > > L=nxlist(range(10)) > L[1:2]==[L[1]]==[1] > L[-2:-1]==[L[-1]]==[9] # not [L[-2]] > > IMHO in this case current list slicing is more consistent.
Your second case should be: L[-3:-2]==[L[-2]]==[8] The single index is also the right side index of the range selection ending in the same position just as with positive number the single index is the left side index of a range starting in the same position. So for positive indexing... L[n1:n2]==[L[n1]]==first value of selection from left and negative indexing... L[n1:n2]==[L[n2]]==first value of selection from right Currently for negative values... L[n1:n2]==[L[n2-1]]==first value of selection from right The symmetry is easier to see when using the '~' values. LL=list(range(10)) Lx=nxlist(range(10)) LL[ 1: 2]==[LL[ 1]]==[1] Lx[~2:~1]==[Lx[~1]]==[8] Cheers, Ron -- http://mail.python.org/mailman/listinfo/python-list