【发布时间】:2014-06-26 13:22:15
【问题描述】:
在我的程序中,我想按姓名对所有联系人进行排序,先是姓氏,然后是名字。
我有代码可以为我做到这一点但是它并没有完全按照我的意愿去做。
例如,如果我有一个按当前代码排序的名称列表,它将如下所示:
Luke
Riyaan
Amanda Benson
如您所见,代码仍然以None 作为排序值,我想要的是这样的:
Amanda Benson
Luke
Riyaan
所以基本上,如果姓氏返回None,那么我希望程序以与具有姓氏的对象相同的优先级来排序名字。
这是我目前用来对名称进行排序的代码:
import operator
...
addressBook = AddressBook()
addressBook.contactsList
addressBook.contactsList.sort(key = operator.attrgetter("lastName", "firstName"))
【问题讨论】:
-
你的联系方式是什么?它们也是类实例吗?你在课堂上实现了比较魔术方法吗?
-
它们是存储在列表中的类实例。我不知道比较魔术方法是什么/意思,所以可能不是。