按首字母分组 python_Python-按首字母分隔列表

classContact():def__init__(self,firstName,lastName,address,groupType,telephone,mobile,email,photoField):self.firstName=firstName

self.lastName=lastName

self.address=address

self.groupType=groupType

self.telephone=telephone

self.mobile=mobile

self.email=email

self.photoField=photoFielddefshowDetails(self):print("First Name:\t",self.firstName)print("Last Name:\t",self.lastName)print("Address:\t",self.address)print("Telephone:\t",self.telephone)print("Mobile:\t",self.mobile)print("Email:\t",self.email)@classmethoddeffrom_input(cls):firstName=input("First Name: ")lastName=input("Last Name: ")address=input("Address: ")telephone=input("Telephone: ")mobile=input("Mobile: ")email=input("Email: ")returncls(firstName,lastName,address,None,telephone,mobile,email,None)classAddressBook():def__init__(self):self.contactsList=pickle.load(open("save.p","rb"))defaddContact(self,contact=None):ifcontactisNone:contact=Contact.from_input()self.contactsList.append(contact)pickle.dump(self.contactsList,open("save.p","wb"))defdelContact(self,contact=None):ifcontactisNone:search=input("Search: ")foriinself.contactsList:if(i.firstName.lower()==search.lower())or(i.lastName.lower()==search.lower()):indexed=self.contactsList.index(i)delself.contactsList[indexed]pickle.dump(self.contactsList,open("save.p","wb"))elif(i.firstName.lower()!=search.lower())or(i.lastName.lower()!=search.lower()):continuedefcontactInfo(self,contact=None):ifcontactisNone:search=input("Search: ")print()#display contact informationforiinself.contactsList:if(i.firstName.lower()==search.lower())or(i.lastName.lower()==search.lower()):i.showDetails()print()elif(i.firstName.lower()!=search.lower())or(i.lastName.lower()!=search.lower()):continueelse:print("No contacts\n")defcontactSearch(self,contact=None):ifcontactisNone:search=input("Search: ")print()foriinself.contactsList:if(i.firstName.lower()==search.lower())or(i.lastName.lower()==search.lower()):print(i.firstName,i.lastName)print()elif(i.firstName.lower()!=search.lower())or(i.lastName.lower()!=search.lower()):continueelse:print("No contacts\n")classMainPage(Page):def__init__(self,screen=pygame.display.set_mode((320,480)),caption=pygame.display.set_caption("Contacts"),title="Contacts"):Page.__init__(self,screen,caption)self.title=titledefstyle(self):Page.style(self)titleFont=pygame.font.SysFont("trebuchet ms",38)textSurface=titleFont.render(self.title,True,(255,255,255))self.screen.blit(textSurface,(5,18))AddButton().shape()#Presenting contacts on pagedefprintContacts(self):addressBook=AddressBook()addressBook.contactsList

addressBook.contactsList.sort(key=lambdac:(c.lastName,c.firstName)ifc.lastNameelse(c.firstName,""))contactFont=pygame.font.SysFont("trebuchet ms",18)x=80foriinaddressBook.contactsList:name=i.firstName+" "+i.lastName

textName=contactFont.render(name,True,(0,0,0))pygame.draw.line(self.screen,(210,210,210),(5,(x+20)),(320,(x+20)),1)self.screen.blit(textName,(5,x))x+=30

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值