题目
给出一个仅包含字母的字符串,不包含空格,统计字符串中各个字母(区分大小写)出现的次数,并按照字母出现次数从大到小的顺序输出各个字母及其出现次数。如果次数相同,按照自然顺序进行排序,且小写字母在大写字母之前。
字母需要的排序顺序与asc码不同,所以排序的代码有点长,如果有更好的方向可以教我,谢谢~
str1=input()str_List=[]for i in range(len(str1)): str_List.append(str1[i])set_List=List(set(str_List))set_List=sorted(set_List)print(set_List)count2=-1for i in range(len(set_List)): if set_List[i]>='A'and set_List[i]<='Z': count2=i+1print(count2)for i in range(count2): set_List.append(set_List[i])print(set_List)for i in range(count2): del(set_List[0])print(set_List)num_List=[]num2_List=[]num3_List=[]for i in range(len(set_List)): num_List.append(0) num2_List.append(0) num3_List.append(0)#print(num_List)for i in range(len(set_List)): for j in str_List: if set_List[i]==j: num_List[i]=num_List[i]+1 num2_List[i]=num2_List[i]+1num_List.sort()num_List.reverse()print(num_List)print(num2_List)for i in range(len(num_List)): if i>0 and num_List[i]==num_List[i-1]: continue count = 0 for j in range(len(num2_List)): if num2_List[j]==num_List[i]: count=count+1 num3_List[j]=ifor i in range(max(num3_List)+1): for j in range(len(num3_List)): if num3_List[j]==i: print(set_List[j]+':'+str(num2_List[j]),end=';')
总结
以上是内存溢出为你收集整理的字符统计及重排的python实现全部内容,希望文章能够帮你解决字符统计及重排的python实现所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)