[Python-ideas] More useful slices

Neil Girdhar mistersheik at gmail.com
Mon Feb 2 16:01:34 CET 2015


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 <javascript:> 
> 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/c3ff55ec/attachment-0001.html>


More information about the Python-ideas mailing list