Skip to main content

Reference implementation of Python's list slicing resolution

Project description

Python Slicing Reference

Python's builtin 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slice-ref-0.0.2.tar.gz (4.5 kB view hashes)

Uploaded Source

Built Distribution

slice_ref-0.0.2-py3-none-any.whl (6.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page