Bryan wrote:
On Feb 22, 9:19 am, MRAB <pyt...@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)?

ordered != sorted.

If you want the ordered dict to be sorted by key then build a dict first
and then create the ordered dict from the sorted dict. I think the
quickest way to build the sorted dict is:

    orderedDict = OrderedDict(sorted(unorderedDict.items()))

although I haven't tried 'sorteddict' (see Daniel Stutzbach's post).
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to