Paul Moore added the comment: On 29 April 2015 at 19:42, Sergey B Kirpichev <rep...@bugs.python.org> wrote: >> It's a common computer science technique > > Could you provide any language that avoid this optimization? > > Here is Perl 5: > http://perl5.git.perl.org/perl.git/blob/HEAD:/pp_sort.c#l367 > > (third example)
But that's a sort without a key. In Perl you do a key sort via: @sorted = map { $_->[0] } sort { $a->[1] <=> $b->[1] } # use numeric comparison map { [$_, length($_)] } # calculate the length of the string @unsorted; (From http://en.wikipedia.org/wiki/Schwartzian_transform). That computes the keys first, and would compute the key for a list of length 1, just like Python does. It's just that Python bundles that whole construct into the "key=" argument. But it's your choice - if this is a big enough deal to put you off Python, I guess no-one will be able to stop you. The fact of the matter is that what Python does is documented behaviour, and the benefit (small) isn't worth the cost of making a change (which would only be in Python 3.5 and later anyway, as it's a backward incompatible change, not a bug fix). ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue24075> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com