This proposal is definitely *possible*, but is the only argument in its favor saving 5 characters? You already have the shorthand exactly when you most need it (indexing). On Monday, February 2, 2015 at 10:01:34 AM UTC-5, Neil Girdhar wrote:
But it is meaningful to have a range with an unspecified stop. That's itertools.count.
On Sunday, February 1, 2015 at 12:27:53 PM UTC-5, Steven D'Aprano wrote:
On Sun, Feb 01, 2015 at 04:13:32PM +0100, Todd wrote:
Although slices and ranges are used for different things and implemented differently, conceptually they are similar: they define an integer sequence with a start, stop, and step size.
I'm afraid that you are mistaken. Slices do not necessarily define integer sequences. They are completely arbitrary, and it is up to the object being sliced to interpret what is or isn't valid and what the slice means.
py> class K(object): ... def __getitem__(self, i): ... print(i) ... py> K()["abc":(2,3,4):{}] slice('abc', (2, 3, 4), {})
In addition, the "stop" argument to a slice may be unspecified until it it applied to a specific sequence, while range always requires stop to be defined.
py> s = slice(1, None, 2) py> "abcde"[s] 'bd' py> "abcdefghi"[s] 'bdfh'
It isn't meaningful to define a range with an unspecified stop, but it is meaningful to do so for slices.
In other words, the similarity between slices and ranges is not as close as you think.
-- Steven _______________________________________________ Python-ideas mailing list Python...@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/