On 2/10/2013 1:45 PM, Rick Johnson wrote:
On Sunday, February 10, 2013 2:39:21 AM UTC-6, Terry Reedy wrote:
While it is true that sorted(iterable) is essentially
def sorted(iterable):
tem = list(iterable)
tem.sort
return tem
the body is not an expression and cannot be substituted in an
expression.
Yes but the body can be compressed to this single line: "list(iterable).sort()"
That single line now evaluates to None, so that does not work.
Even if list mutation methods returned the list, which they do not and
for good reason,
I am not proposing that in-place modification return the object.
It seems to me that you are, as that is the only way for
'list(iterable).sort()' to replace 'sorted(iterable)', as you proposed
both originally and above.
The reason sorted(iterable) was added is 'list(iterable).sort()', which
newbies would try, *does not work*. Sorted was added so people would not
have to write
tem = list(iterable)
tem.sort()
<statement using tem>
del tem
as they did previously, and instead could write
<statement using sorted(iterable)>
Reversed was added not only for the same reason, but also to avoid the
temporary list altogether when not actually needed, which it often or
usually is not.
--
Terry Jan Reedy
--
http://mail.python.org/mailman/listinfo/python-list