Define key in nlargest() of heapq?

Davy zhushenli at gmail.com
Tue Nov 13 00:33:33 EST 2007


Hi Raymond,

Your code work well, thank you :)

Best regards,
Davy

On Nov 13, 11:33 am, Raymond Hettinger <pyt... at rcn.com> wrote:
> On Nov 12, 6:56 pm, Davy <zhushe... at gmail.com> wrote:
>
> > I have a dictionary with n elements, and I want to get the m(m<=n)
> > keys with the largest values.
>
> > For example, I have dic that includes n=4 elements, I want m=2 keys
> > have the largest values)
> > dic = {0:4,3:1,5:2,7:8}
> > So, the the largest values are [8,4], so the keys are [7,0].
>
> > How to do this by nlargest() of heapq? I have tried
> > nlargest(2,dic,key),
>
> Try this:
>
> >>> from heapq import nlargest
> >>> dic = {0:4,3:1,5:2,7:8}
> >>> from operator import itemgetter
> >>> nlargest(2, dic, dic.__getitem__)
>
> [7, 0]
>
> Raymond





More information about the Python-list mailing list