Raymond Hettinger wrote: > Cons: > ----- > > * learning slices is basic to the language (this lesson shouldn't be > skipped) > also, a clear method would simply clear the entire list. You still need to learn the assigning to/deleting slices technique any time you want to clear out part of a list.
Every so often I still get an "oh, I didn't know Python could do *that* moment", just had one now: >>> s = range(10) >>> s[::2] = reversed(s[::2]) >>> s [8, 1, 6, 3, 4, 5, 2, 7, 0, 9] I've no idea when I might need it, but it just never occurred to me before that you can also assign/del non-contiguous slices. The symmetry does breaks down a bit here as assigning to an extended slice only lets you assign a sequence of the same length as the slice, so you can't delete an extended slice by assignment, only by using del. >>> s = range(10) >>> del s[::2] >>> s [1, 3, 5, 7, 9] >>> s = range(10) >>> s[::2] = [] Traceback (most recent call last): File "<pyshell#19>", line 1, in -toplevel- s[::2] = [] ValueError: attempt to assign sequence of size 0 to extended slice of size 5 >>> -- http://mail.python.org/mailman/listinfo/python-list