Efficiently building ordered dict

Mark Lawrence breamoreboy at yahoo.co.uk
Mon Feb 22 19:15:38 CET 2010

Bryan wrote:
> On Feb 22, 9:19 am, MRAB <pyt... at mrabarnett.plus.com> wrote:
>> Bryan wrote:
>>> I am looping through a list and creating a regular dictionary.  From
>>> that dict, I create an ordered dict.  I can't think of a way to build
>>> the ordered dict while going through the original loop.  Is there a
>>> way I can avoid creating the first unordered dict just to get the
>>> ordered dict?  Also, I am using pop(k) to retrieve the values from the
>>> unordered dict while building the ordered one because I figure that as
>>> the values are removed from the unordered dict, the lookups will
>>> become faster.  Is there a better idiom that the code below to create
>>> an ordered dict from an unordered list?
>> Why are you building a dict from a list and then an ordered dict from
>> that? Just build the ordered dict from the list, because it's behaves
>> like a dict, except for remembering the order in which the keys were
>> added.
> Could you write some pseudo-code for that?  I'm not sure how I would
> add the items to the OrderedDict while looping through the list.
> Wouldn't the list need to be sorted first (which in this case isn't
> practical)?

Could you please clarify what you are trying to achieve as you appear to 
be confusing ordering with sorting.

Mark Lawrence.

More information about the Python-list mailing list