[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