[Python-Dev] extended slicing for lists
Ka-Ping Yee
ping@lfw.org
Fri, 28 Jul 2000 23:57:22 -0700 (PDT)
On 28 Jul 2000, Michael Hudson wrote:
> >>> l = range(10)
> >>> l[2:10:2] = [0]*5
> >>> l
> [0, 1, 0, 3, 0, 5, 0, 7, 0, 9]
> >>>
Hmph. I'd be perfectly comfortable with
>>> l[2:10:2] = [0]*5
TypeError: lists cannot assign to stepped slices
I can't see this being a commonly desired feature. If it
were perfectly clear what should happen in all cases, i'd
be okay with it -- but the ambiguity you get when the length
of the right side doesn't match the length of the indicated
slice is sufficient for me to suggest just dropping it:
better to avoid confusion altogether.
> (and presumably del l[a:b:c])
That seems reasonable and well-defined.
A separate question: does l[::-1] return l reversed? That is,
are the defaults for omitted start/end exchanged if step is
negative? This would seem to be quite useful -- having to say
l[len(l)-1:-1:-1] would be a royal pain.
-- ?!ng