[Python-ideas] Ordered storage of keyword arguments (original) (raw)

Antoine Pitrou solipsis at pitrou.net
Thu Oct 28 20:06:05 CEST 2010


On Thu, 28 Oct 2010 19:58:59 +0200 spir <denis.spir at gmail.com> wrote:

On Thu, 28 Oct 2010 07:58:08 -0700 Guido van Rossum <guido at python.org> wrote:

> Let's see if someone can come up with an ordereddict implemented in C > first and then benchmark the hell out of it. > > Once its performance is acceptable we can talk about using it for > keyword args, class dicts, or even make it the one and only dict > object -- but the latter would be a really high bar to pass. > What does the current implementation use as buckets?

It uses an open addressing strategy. Each dict entry holds three pointer-sized fields: key object, value object, and cached hash value of the key. (set entries have only two fields, since they don't hold a value object)

You'll find details in Include/dictobject.h and Objects/dictobject.c.

Regards

Antoine.



More information about the Python-ideas mailing list