This sounds like a very verbose repeated statement that "there may be a use
in the future." That's definitely not going to get a feature, no matter how
many times repeated.

If this is something you actually need, write a subclass of list in Cython
or C, and add that capability. I cannot think of a time I would have used
it in the last 23 years, but maybe someone would. Put it on PyPI and
explain why it helps something.

On Sat, Mar 6, 2021, 1:42 AM Vincent Cheong <vincentcheong6...@gmail.com>
wrote:

> Sorry for not explaining the background of my idea. I'm involved in the
> research area of sorting algorithms. Reversals are part of sorting and
> correct me if wrong, `list.reverse()` is the fastest method to reverse an
> entire list, which is also in-place. Yet, it doesn't work for a subsection
> of it. If not mistaken, the easiest way is to reassign that subsection with
> a reversed slicing, One, it is not as fast anymore. Two, by time
> complexity, the algorithm is no longer in-place because of the slicing.
> Thus, this is the entire story.
>
> > I think that, perhaps, you are trying to say that reversing a list
> requires no additional storage and can be done in place.
>
> >>> Yes! This is what I meant.
>
>
> > To balance those costs, we require something more than "Wouldn't it be
> good...?", we require an actual, real life use-case for
> the feature. (And even then, it's not a guarantee that we will accept the
> proposed feature.)
>
> >>> I try not to enter into details and technicalities. I try to help by
> proposing ideas, abstract thoughts, and visions. Anyways, there are many
> things we do that involve reversals and subsection reversals - it's not an
> uncommon thing to do. Thus, it will help. It's better to shape this
> perspective: with the proposed idea, Python gains more power, and along the
> way, when the time comes we need it, we already have it. For the short term
> or time being, normal reversal tasks would be the first to benefit.
>
> > But even easy changes have some cost: the work has to be done, tests
> written and run, documentation updated, and that adds one more thing for
> people to learn.
> >>>This is my assessment: list.reverse() lacks functionality because it
> only works for whole lists. Once any intention goes out of the radius of
> the stated purpose, it becomes completely unusable. So we should agree that
> it lacks functionality and versatility. This is unworthy and Python should
> be more powerful than this. Noticing that it takes no arguments, it has
> room for improvement where we can conveniently add 'start' and 'end'
> parameters. Those mentioned costs I believe are part of daily development
> hassles, but I would like to comment more on the 'adds one more thing for
> people to learn'. Assuming that we do add the two parameters, I would
> foresee as just an 'upgraded version' of the function and the changes are
> as simple as 'Now, list.reverse() can take in two arguments which allows us
> to reverse a specific range in the list, not the complete list.' Therefore,
> it will not pose a heavy stuff for learning. It should be a situation where
> people will be like, for experienced, 'Oh
>  , now list.reverse() works on a specific range instead of the entire
> list', and for newcomers, 'Oh, list.reverse() can work on specific ranges
> too.'
>
>
> >Some additional questions:
> >    Do we extend this feature to the reversed() built-in?
> >    What about sorting?
>
> >>> Interesting. The second one is mainly my lack of explanation which I
> have cleared at the top. For the first one, I have not given much thought
> about it since it performs quite differently, hence a quite different
> territory, but it is interesting to explore. It returns an iterator for any
> given sequence, if I'm not mistaken. Reversed is used when we need to do
> something more to each item, in the opposite direction. It's usually used
> in a loop, list comprehension, etc. It can also be used to make a reversed
> list by putting it into the list constructor but then you have slicing more
> suitably for that. Back to the first functionality, we would usually
> traverse an entire list, and if one needs to traverse only a section of it,
> we would be passing in a slice (which already creates a copy of it, correct
> me if wrong). So, issues still tend to revolve around slicing and its
> copy-making behavior. I understand that we are encouraged to avoid mutating
> existing data, but that also brings in t
>  he issue of necessity - must we always make a copy of something? There
> are quite a number of things we do which traverse sections of lists, so by
> adding the two arguments, we are giving reversed() an in-place capability.
> On one hand, this allows us to save memory for larger and larger lists. On
> the other hand, it seems unnecessary because we can also use range() and
> indices within reversed() to traverse a section, but then that would be
> unclean as compared to having simply declare a 'start' and 'stop'. Here in
> reversed(), the proposal may not have much of a position of strength for
> consideration, compared to list.reverse(), but it is worth weighing how
> simpler, cleaner or better iterators are having 'start' and 'stop'
> arguments. You have extra flexibility but is it worth it; that would be
> better answered with more assessments by a wider range of audience.
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-ideas@python.org/message/NAH2RRPDQ3F3AO3UBJEL3BTSDAQ3CQXO/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/H7TN4ZQF5VGDPYAPGMWSTD2VMJT4I6Z4/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to