2016-12-01 19 views
0

因此我正在制定議程。Python根據其中一個屬性的字母順序排序其中具有對象的字典

管理該字典議程的屬性是:self.ContactList = {}

這裏面我的電話號碼作爲用於接觸鍵(這是一個類)。

Contact類具有一個稱爲電話的屬性和其他屬性,包括聯繫人姓名。

我想要一個列出議程中聯繫人的函數,但是我想按照它包含的聯繫人的字母順序列出它們。

現在,我使用這個打印的觸點(已經重寫了接觸類的____str____允許這樣):

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

如何排序的聯繫人的屬性「名」 self.ContactList ?

編輯:接觸類是如下

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) 
+0

肯定,但接觸只是有初始化和STR – GonzaloXavier

+2

只是要清楚,你不上課在你的字典,您有對象。對象是類的實例。 – Lunaweaver

+0

@Lunaweaver你是對的。我的錯。 (我真的很新) – GonzaloXavier

回答

2

如果要排序列表,使用sorted()功能。如果你想的那種用一個有趣的排序標準,使用key=關鍵字:

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

謝謝,你搖滾! – GonzaloXavier

相關問題