[Python-ideas] a new namedtuple

Ethan Furman ethan at stoneleaf.us
Mon Jul 17 22:57:08 EDT 2017


On 07/17/2017 06:34 PM, Steven D'Aprano 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.

I suck at benchmarking, so thank you for providing those quick-and-dirty hints.

> 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')"

546 usec

> versus
>
> python3 -m timeit --setup "from aenum import NamedTuple" \
>      "K = NamedTuple('K', 'a b c')"

250 usec


So it seems to be faster!  :)

It is also namedtuple compatible, except for the _source attribute.

--
~Ethan~


More information about the Python-ideas mailing list