Raymond Hettinger added the comment:

I'm -0 on this proposal.

There is a small speed-up to be had here:

  $ python3.4 -m timeit -s 'f=lambda kv: kv[0]' -s 's=[10, 20]' 'f(s)'
  10000000 loops, best of 3: 0.105 usec per loop

  $ python3.4 -m timeit -s 'import operator' -s 'f=operator.itemgetter(0)' -s 
's=[10, 20]' 'f(s)'
  10000000 loops, best of 3: 0.0717 usec per loop

That said, it is applied only n-times and is likely insignificant when compared 
to the O(n log n) sort.   I think it is better to not add an intermodule 
dependency when we don't have to.

Also if you're using CPython, then the C version of JSON is used instead of 
this code.  So, any timings or optimizations should be tested against the other 
implementations (Jython or PyPy) that use them.   In those implementations, I 
don't think itemgetter() has any performance benefit over the lambda.

----------
nosy: +rhettinger
type:  -> performance
versions:  -Python 2.7, Python 3.2, Python 3.3, Python 3.4, Python 3.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue23493>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to