[Python-ideas] a new namedtuple

Joao S. O. Bueno jsbueno at python.org.br
Tue Jul 18 17:06:00 EDT 2017


In the other thread, I had mentioned my "extradict" implementation - it
does have quite a few differences as it did not try to match namedtuple
API, but it works nicely for all common use cases - these are the timeit
timings:

(env) [gwidion at caylus ]$ python3 -m timeit --setup "from collections import
namedtuple"     "K = namedtuple('K', 'a b c')"
1000 loops, best of 3: 362 usec per loop

(env) [gwidion at caylus ]$ python3 -m timeit --setup "from extradict import
namedtuple"     "K = namedtuple('K', 'a b c')"
10000 loops, best of 3: 20 usec per loop

(env) [gwidion at caylus ]$ python3 -m timeit --setup "from extradict import
fastnamedtuple as namedtuple"     "K = namedtuple('K', 'a b
c')"
10000 loops, best of 3: 21 usec per loop


Source at:
https://github.com/jsbueno/extradict/blob/master/extradict/extratuple.py

On 17 July 2017 at 22:34, Steven D'Aprano <steve at pearwood.info> wrote:

> On Mon, Jul 17, 2017 at 05:01:58PM -0700, Ethan Furman wrote:
> > Guido has decreed that namedtuple shall be reimplemented with speed in
> mind.
> >
> > I haven't timed it (I'm hoping somebody will volunteer to be the bench
> mark
> > guru), I'll offer my NamedTuple implementation from my aenum [1] library.
>
> With respect Ethan, if you're going to offer up NamedTuple as a faster
> version of namedtuple, you should at least do a quick proof of
> concept to demonstrate that it actually *is* faster. Full bench marking
> can wait, but you should be able to do at least something like:
>
>
> python3 -m timeit --setup "from collections import namedtuple" \
>     "K = namedtuple('K', 'a b c')"
>
> versus
>
> python3 -m timeit --setup "from aenum import NamedTuple" \
>     "K = NamedTuple('K', 'a b c')"
>
> (or whatever the interface is). If there's only a trivial speed up, or
> if its slower, then there's no point even considing it unless you speed
> it up first.
>
>
> --
> Steve
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20170718/b4cc5942/attachment-0001.html>


More information about the Python-ideas mailing list