擅长:python、mysql、java
<p>如果你只想要最流行的书,你可以用<a href="https://docs.python.org/3/library/functions.html#min" rel="nofollow noreferrer">min</a>:</p>
<pre><code>def most_popular_book(books):
result, _ = min(books.items(), key=lambda x: (-len(x[1]), x[0]))
return result
print(most_popular_book({'harry potter': ['yossi', 'adam'],
'lilo and stich': ['yossi', "adam"], 'catch-22': ['adam']}))
print(most_popular_book({'the little prince': ['yossi'], 'harry potter': ['yossi', 'assaf'],
'catch-22': ['yossi', 'dana']}))
</code></pre>
<p><strong>输出</strong></p>
<pre><code>harry potter
catch-22
</code></pre>
<p>这个想法与@PatrickArtner的答案相同,唯一的区别是排序的是<em>O(nlogn)</em>,min是<em>O(n)</em>。不需要对列表排序,只需找到最小值。你知道吗</p>