Get first N key pairs from an Ordered Dictionary to another one in python
Question: I have an ordered dictionary (OrderedDict) sorted by value. How can I get the
top (say 25) key values and add them to a new dictionary? For example: I have
something like this

    
    
    dictionary={'a':10,'b':20,'c':30,'d':5}
    ordered=OrderedDict(sorted(dictionary.items(), key=lambda x: x[1],reverse=True))
    

Now ordered is an ordered dictionary, I want to create a dictionary, say by
taking the top 2 most frequent items and their keys

    
    
    frequent={'c':30,'b':20}
    


Answer: The primary purpose of OrderedDict is retaining the order in which the
elements were created. What you want here is
[`collections.Counter`](http://docs.python.org/library/collections.html#collections.Counter),
which has the n-most-frequent functionality built-in:

    
    
    >>> dictionary={'a':10,'b':20,'c':30,'d':5}
    >>> import collections
    >>> collections.Counter(dictionary).most_common(2)
    [('c', 30), ('b', 20)]
    

