Efficiently building ordered dict

Bryan bryanvick at gmail.com
Mon Feb 22 18:28:22 CET 2010


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)?






More information about the Python-list mailing list