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?
unorderedDict = {} for thing in unorderedList: if thing.id in unorderedDict: UpdateExistingValue(unorderedDict[thing.id]) else: CreateNewValue(unorderedDict[thing.id]) orderedDict = OrderedDict() for k in sorted(unorderedDict.keys()): orderedDict[k] unorderedDict.pop(k) -- http://mail.python.org/mailman/listinfo/python-list