擅长:python、mysql、java
<p>samy的代码是正确的,但是效率很低:您执行n+1查询(其中n是唯一姓氏的数目)。既然你无论如何都要得到表中的所有对象,你不妨一次完成。改用这个:</p>
<pre><code>from collections import defaultdict
person_dict = defaultdict(list)
persons = Person.objects.all()
for person in persons:
person_dict[person.last_name].append(person)
</code></pre>