擅长:python、mysql、java
<p>您可以使用<code>itertools.groupby</code>和排序来执行一行代码:</p>
<pre><code>>>> from itertools import groupby
>>> {k:[x[0] for x in g] for k,g in groupby(sorted(rating.items(), key=lambda x:x[1]),lambda x:x[1])}
{'passing': ['bernice', 'barnum', 'bernie', 'bill'], 'no pass': ['ben'], 'excellent': ['belle', 'baxter', 'bob'], 'satisfactory': ['beatrice']}
>>>
</code></pre>
<p>但这是不必要的低效,它需要一个排序操作来具体化一个辅助列表,而且它过于复杂。不要试图只写一句话。编写干净易读的代码,高效地使用python数据结构。只需使用一个<code>collections.defaultdict</code>,这是分组的标准方式:</p>
^{pr2}$