python之统计字符串中字母出现次数
Posted 江武
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之统计字符串中字母出现次数相关的知识,希望对你有一定的参考价值。
dic=dict() d={} s=set() s=\'helloworld\' (1)d=dict() for x in s: if x not in d.keys(): d[x]=1 else: d[x]=d[x]+1 print(d) (2)d2=dict() for x in s: d2[x]=d2.get(x,0)+1 print(d2) (3)d3=dict() for x in s: d3[x]=s.count(x) print(d3)
上面一共给出了三种方法,均是以字典的形式输出,但可以看出,通过第二三种的内置函数方法更简便
def countchar(str): str=str.lower()#化成小写 ans=[] for i in range(26): #列表赋初值 26 个 0 ans.append(0) for i in str: if(ord(i)>=ord(\'a\')and ord(i)<=ord(\'z\')): ans[ord(i)-ord(\'a\')]=ans[ord(i)-ord(\'a\')]+1 #统计个数 return ans if __name__ == "__main__": str = input() print(countchar(str)) def countchar(st): #定义数个数的函数 keys = [chr(i+97) for i in range(26)] #生成26个字母的key列表 di = dict().fromkeys(keys,0) #赋给每个key初始值0 new = [] #建立一个新列表用于存放有序的key st = st.lower() #将所有输入的字符改为小写 for s in st: #遍历字符串 di[s] = st.count(s) #输出每个字符的个数,存放到字典里 for k in keys: #遍历keys,将其在di中的值添加到新列表,获得有序的26个字母的个数 new.append(di[k]) return new #返回存有26个字母个数的列表 if __name__ == "__main__": st = input() #输入字符串 str1 = "" #定义一个空字符串 for s in st: #遍历输入的字符串 if s.isalpha() != 0: #只有字母才添加到新字符串,标点忽略不计 str1 += s print(countchar(str1)) #输出列表
上面的两种方法也是输出字符串的字母出现次数,略有不同的是,这里它先设定了26个字母,并使其对应的初始值为0,然后统计字符串中的各字母出现次数,每个字母出现了多少次,即为其对应的初始值处的值。而没出现的字母,其对应的值则仍为初始值0
通过上述的几种方法,我们不难总结出解决这种问题的思路:从键盘随机输入一段字符串,然后循环遍历字符串,通过循环字符串中的每一个字符,统计各类字符出现的次数,循环遍历字符串
以上是关于python之统计字符串中字母出现次数的主要内容,如果未能解决你的问题,请参考以下文章