[Python-ideas] More useful slices
Neil Girdhar
mistersheik at gmail.com
Mon Feb 2 16:29:17 CET 2015
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... at python.org
>> https://mail.python.org/mailman/listinfo/python-ideas
>> Code of Conduct: http://python.org/psf/codeofconduct/
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20150202/cad84d57/attachment-0001.html>
More information about the Python-ideas
mailing list