Python按照其中一个属性的字母顺序对包含对象的字典进行排序

时间:2016-12-01 21:45:18

标签: python dictionary

所以我正在制定议程。

管理字典的议程属性是:self.ContactList = {}

在这里,我有一个电话号码作为联系人的密钥(这是一个班级)。

Contact类有一个名为telephone的属性,其他属性包括联系人姓名。

我想要一个列出议程中联系人的功能,但是我想按照其中包含的联系人的字母顺序列出它们。

现在我用它来打印联系人(已经覆盖了联系人类的____str____以允许这样做):

def listcontacts(self, agenda):
    print("Contact List\n")
    for tel, contact in agenda.ContactList.items():
        print(contact,"\n"*2)

如何按联系人的属性排序self.ContactList" name"?

编辑:联系类如下

class Contact:
    def __init__(self, name, adress, zipcode, telephone):
        self.name = name
        self.adress = adress
        self.zipcode = zipcode
        self.telephone = telephone
    def __str__(self):
        return ( "Name: " + self.name + "\nAdress: " + self.adress + "\nZipCode: " + self.zipcode
                 + "\nTelephone: " + self.telephone)

1 个答案:

答案 0 :(得分:2)

如果要对列表进行排序,请使用sorted()功能。如果您希望排序使用有趣的排序标准,请使用key=关键字:

for tel, contact in sorted(agenda.ContactList.items(), key=lambda x: x[1].name):