擅长:python、mysql、java
<p>您可以使用<code>sorted</code>和字典理解:</p>
<pre><code>from typing import Dict, List
def ranking(d, n:'n_users', top = True) -> Dict[int, List[str]]:
_ranks = sorted(d.values())
_ranks = _ranks[-n:] if top else _ranks[:n]
return {i:[a for a, b in d.items() if b == i] for i in _ranks}
pN ={'dave': 10, 'jacinta': 10, 'james': 8, 'john': 6, 'jack': 3, 'sam': 2}
for a, b in sorted(ranking(pN, 10).items(), key=lambda x:x[0], reverse=True):
print('{} {}'.format(a, ', '.join(b)))
</code></pre>
<p>输出:</p>
^{pr2}$
<p>编辑:对于任意数量的顶级用户,将值传递给函数:</p>
<pre><code>_r = ranking(pN, 5) #for the top 5 users
</code></pre>