- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
python核心编程第二版课后题答案第七章
def orderdict(mydict):??? 7-3(a)创建一个字典,并把字典中的键按照字母顺序显示出来??? # 题目说了只要把键按照字母顺序显示出来,并没有说要把值也显示出来??? print sorted(mydict)def orderdict2(mydict):??? 7-3(b) 现在根据排好的键,显示出这个字典的键和值??? keys = sorted(mydict)??? for i in keys:??????? print %s:%s %(i,mydict[i]),def orderdict3(mydict):??? 7-3(c) 这次按照值排序输出??? # 这里我们采用了 sorted的 key技巧??? for k,v in sorted(mydict.items(),key=lambda x:x[1]):??????? print %s:%s %(k,v),def mergedict(list1,list2):??? 7-4 给定两个长度相同的列表,建立一个字典??? 例如 [1,2,3,4,5] [a,b,c,d] 生成 [1:a,2:b,3:c,4:d]??? r = {}??? lens = len(list1)??? for i in xrange(lens):??????? r.setdefault(list1[i],list2[i])??? return r# 7.5在单独的文件里# 7.6在单独的文件里def changedict(mydict):??? 7.7 将输入的字典的键和值互换??? 示例:??? mydict = {1:a,2:b}??? changedict(mydict)??? print mydict??? ??? # 这里假设输入的值都是可以作为字典的键的,并且要注意,值不能有重复,否则会产生数据丢失??? # 考虑,是直接修改引用,还是不修改引用返回值???? # 产生同值怎么办???? # 如果是返回值,那么这道题目太简单了,所以我这里使用返回引用??? # 返回引用的话就是修改引用??? # 如果使用引用就不能使用 items 迭代,因为在循环items的时候,你是无法修改键的??? # 所以我这里使用了 keys??? for i in mydict.keys():??????? temp = mydict[i]??????? del mydict[i]??????? mydict[temp] = idef hr():??? 7.8 输入雇员和编号,对雇员进行排序输出,对编号进行排序输出??? db ={}??? # uid是不能重复的,但是名字是有可能重复的,所以我这里不打算用键值互换法??? while True:??????? employee = raw_input(请输入雇员名[输入q退出]:)??????? if employee==q:break??????? employee.decode(gbk)??????? while True:??????????? uid????? = int(raw_input(请输入编号:))??????????? if uid in db:??????????????? print 编号已经存在!??????????????? continue??????????? break??????? db[uid] = employee??? while True:??????? order = raw_input(你想按名字(N)还是按编号(I)排序(N/I/Q退出):).lower()[0]??????? if order not in niq:??????????? print 输入的指令错误!??????????? continue??????? if order == q:??????????? break??????? if order == n:??????????? # 知识点,这里用到了 sorted中的key参数??????????? # key 返回一个 lambda ,所谓 lambdabda就是一个小函数,??????????? # 类似匿名函数??????????? #???????????? #?? def (x):??????????? #?????? return x[1]??????????? #??????????? # 那么x又是什么呢?x就是db.items 返回的第一项,x[0] 就是字典的键,x[1]就是字典的值??????????? # 所以表示按照 db.items()中字典的值部分排序??????????? # 此外 sorted里还有一个是 cmp,c
您可能关注的文档
最近下载
- 2025年院感知识理论考试题库+答案.docx VIP
- 配合协调与服务承诺.docx VIP
- 14《称空气》课件 科学三年级上册(苏教版2025).pptx
- 晚期消化道肿瘤临床规范诊疗新进展题库答案-2025年华医网继续教育.docx VIP
- 工程协调配合措施及承诺.docx VIP
- 医院信息科笔试、面试题(附答案).docx VIP
- 施工协调配合的承诺与措施.pdf VIP
- 医院信息科计算机考试精彩试题(附答案).docx
- 2025年最新人教版七年级(初一)数学上册教学计划及进度表(新课标,新教材).docx
- 2025至2030地毯和室内装饰清洁服务行业项目调研及市场前景预测评估报告.docx
文档评论(0)