Python Slicing Reference
list type allows one to pass in slices to get, set or delete a range of elements.
>>> my_list = ['a', 'b','c'] >>> my_list[0:2] ['a', 'b'] >>> my_list[0:3:2] ['a', 'b'] >>> my_list[1:3] = [1, 2] >>> my_list ['a', 1, 2] >>> my_list[::-1] = ['z', 'y', 'x'] >>> my_list ['x', 'y', 'z']
The slice notation using colons is infact a
slice builtin, where
start:stop:step is equivalent to
slice(start, stop, step). This looks an awful lot like the
range(start, stop, step) builtin, but 1-to-1 translating slices to ranges is not always appropiate.
I have created this package as a reference implementation of
list, specifically to educate on how it deals with slices. I use Hypothesis to test my custom class
listy against Python's very own
list, hopefully ensuring that all situations where slicing is involved is perfectly emulated.