[Python-ideas] More useful slices (original) (raw)

Todd toddrjen at gmail.com
Mon Feb 2 15:00:39 CET 2015


On Mon, Feb 2, 2015 at 1:48 PM, Paul Moore <p.f.moore at gmail.com> wrote:

On 2 February 2015 at 10:22, Todd <toddrjen at gmail.com> wrote: > Let's just call this a range literal. It has some features similar to > slices, but not all.

So what would d[1:10:2] mean? d[Slice(1,10,2)] or d[range(1,10,2)]? At the moment 1:10:2 is a slice literal, and you're proposing to repurpose it as a range literal? What have I missed? Because that's never going to satisfy backward compatibility requirements. No, I am proposing that (x:y:x) is syntactic sugar for range(x, y, z). Note the parentheses. Currently wrapping slice notation in a parentheses is not valid syntax, so there is no backwards-compatibility issues. Bare slice notation, without the parentheses or in an index, will remain invalid syntax.

I am absolutely not proposing that anything change with existing slices. d[1:10:2] would not change at all. d[(1:10:2)] would become valid syntax, but it is not the use-case that prompted it and I doubt anyone would actually want to do that.

I am more interested in something like:

for i in (1:10:2): pass

I am also not proposed the following syntax, since it would be ambiguous in many cases:

for i in 1:10:2: pass -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-ideas/attachments/20150202/75b2de8d/attachment.html>



More information about the Python-ideas mailing list