enhancing slicing
Juan Valiño
juanv at posta.unizar.es
Fri Aug 24 09:13:02 EDT 2001
Thank you very much for your interesting comentaries to my proposal v[a # b]
equivalent to v[a:a+b]
It's interesting that
v[a:][:b] is equivalent to v[a : a + b] (for b>=0)
and therefore equivalent to my original (and wrong) proposal v[a # b]
However, the notation is something awful.
Also, I'm not sure (correct to me) if the performance is equal.
The classical solution:
a = something_complicated_expression
v[a : a + b] ...
is more boring and maybe not applicable in some contexts.
One of thinks I like most from Python is it elegance. It is my friend and
let me to expose my ideas simple and directly without the tricks and
difficulties that I found in some other languages. [You can see that with my
english :) ]
I think that the idiom (initial position + size) is very common and we could
do more support to it in Python.
For that reason I insist in my idea and I wish that an suitable operator
exists for it (instead #).
The Icon-Tim Peters operators :+ and -: sounds well to me:
v[a +: b] == v[a : a + b]
v[a -: b] == v[a - b : a]
It has one aditional advantage: when I read the code I see directly if I
want to go to the right or to the left.
[Question: if b < 0, is the result empty?]
Questions:
Could it affect previous code?
Is it easy to implement?.
(I think so, but I don't want to shout, remember the "comentary operator" :)
More information about the Python-list
mailing list