[Python-Dev] Guarantee ordered dict literals in v3.7?

Serhiy Storchaka storchaka at gmail.com
Sun Nov 5 14:54:22 EST 2017


05.11.17 21:30, Stefan Krah пише:
> On Sun, Nov 05, 2017 at 09:09:37PM +0200, Serhiy Storchaka wrote:
>> 05.11.17 20:39, Stefan Krah пише:
>>> On Sun, Nov 05, 2017 at 01:14:54PM -0500, Paul G wrote:
>>>> 2. Someone invents a new arbitrary-ordered container that would improve on the memory and/or CPU performance of the current dict implementation
>>>
>>> I would think this is very unlikely, given that the previous dict implementation
>>> has always been very fast. The new one is very fast, too.
>>
>> The modification of the current implementation that don't preserve
>> the initial order after deletion would be more compact and faster.
> 
> How much faster?

I didn't try to implement this. But the current implementation requires 
periodical reallocating if add and remove items. The following loop 
reallocates the dict every len(d) iterations, while the size of the dict 
is not changed, and the half of its storage is empty.

while True:
     v = d.pop(k)
     ...
     d[k] = v



More information about the Python-Dev mailing list