实验12元组与字典实验目的:1、理解元组与字典的概念2、掌握元组的方法及使用3、掌握字典的使用方法;实验内容:1.填空已知元组mytup=(1,2,3,4,5,6,7,8,9,10)mytup[:3]=(1,2,3),mytup[1:3]=(2,3)mytup[-1]=10,max(mytup)=__10__len(mytup)=10.产生一个1-26的数字列表A,A=range(1,27)A=[]foriinrange(1,27):A.append(i)PrintA产生一个“A”-“Z”的字母列表B,B=[chr(i)foriinrange(65,91)]B=[]foriinrange(65,91):B.append(i)PrintB请生成一个字典mydict,使得数字与字符形成对应,如1):”A”,2:”B”……26:”Z”.foriinrange(1,27):mydict[i]=chr(i+64)(或者不要for,直接来上面一句)显示字典中所有的键值对foriinmydict.items():printi显示字典中所有的键foriinmydict.keys():printi2)已知ListA=[1,2,3,4,5],ListB=[‘one’,’two’,’three’,’four’,’five’],请把两个列表合并成字典DictA=dict(zip(ListA,ListB)).2.使用字典来创建程序,提示用户输入电话号码,并用英文单词形式显示数字。例如:输入138显示为“onethreeeight”defgetdict(phone):A=[iforiinrange(0,10)]B=[zero,one,two,three,four,five,six,seven,eight,nine]mydict=dict(zip(A,B))foriinphone:printmydict[int(i)]defmain():phone=raw_input(Pleaseenteraseriesphonenumber:)getdict(phone)main()3.莫尔斯电码采用了短脉冲和长脉冲(分别为点和点划线)来编码字母和数字。例如,字母“A”是点划线,“B”是点划线点点。如文件Mos.txt文件所示。A.-B...C-.-.D-..E.F..-.G--.H....I..J.---K-.-L.-..M--N-.O---P.--.Q--.-R.-.S...T-U..-V...-W.--X-..-Y-.--Z--..1)创建字典,将字符映射到莫尔斯电码。2)输入一段英文,翻译成莫尔斯电文。importstringdefMostran(wholetext):f=open(e:\\Mos.txt,r)Mostext=forlineinf:Mostext+=linef.close()Lwhole=Mostext.split()L1=Lwhole[::2]#这种间隔分片出来就是列表L2=Lwhole[1::2]MosDict=dict(zip(L1,L2))forcharinwholetext:printMosDict[char]defmain():temp=raw_input(Enterapassage:)temp=temp.upper()wholetext=forcharintemp:ifcharnotinstring.whitespace+string.punctuation:wholetext+=chartranslation=Mostran(wholetext)main()4.编程统计《葛底斯堡演说》中每个单词出现的次数。要求:打开文件,处理其中的每一行,将每个词添加到字典中或更新其计数,显示输出,在此例中按频率从高到低进行排列。importstringf=open(e:\\gettysburg.txt,r)article=forlineinf:article+=linef.close()article=article.lower()L=article.split()#粗略分词成列表L1=[]forwordinL:temp=forcharinword:ifcharnotinstring.whitespace+string.punctuation:temp+=charL1.append(temp)#全文纯单词列表d={}forkeyinL1:ifkeynotind:d[key]=1ifkeyind:d[key]+=1printdT=sorted(d.items(),key=lambdad:d[1],reverse=True)foriinT:printi