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

通过上述的几种方法,我们不难总结出解决这种问题的思路:从键盘随机输入一段字符串,然后循环遍历字符串,通过循环字符串中的每一个字符,统计各类字符出现的次数,循环遍历字符串

原文地址:https://www.cnblogs.com/jackyfive/p/11783105.html

时间: 2024-10-10 23:39:16

python之统计字符串中字母出现次数的相关文章

java Map练习-获取字符串中字母出现次数(TreeMap实现)

/* 练习: "kbashbdjsgfwhofihbfkwejhfiubjzfhaads"获取该字符串中的字母出现次数. 希望打印结果:a(3)b(4)d(2)... 通过结果发现,每一个字母都有对应的次数.. 说明字符和次数之间都有映射关系. 注意:当发现有映射关系是,可以选择map集合. 因为map集合中存放的就是映射关系. 为什么使用map集合呢? 当数据之间存在着映射关系时,就想到了map集合. 思路: 1,利用String类的charAt()方法遍历字符串中的每一个字符. 2

统计字符串中字母出现的次数,字典形式输出(python)

a = "aAsmr3idd4bgs7Dlsf9eAF" 请将a字符串的数字取出,并输出成一个新的字符串. 请统计a字符串出现的每个字母的出现次数(忽略大小写,a与A是同一个字母),并输出成一个字典. 例 {'a':3,'b':1} 请去除a字符串多次出现的字母,仅留最先出现的一个,大小写不敏感.例 'aAsmr3idd4bgs7Dlsf9eAF',经过去除后,输出 'asmr3id4bg7lf9e' a = "aAsmr3idd4bgs7Dlsf9eAF" def

python技巧 计算字符串中字母出现的次数并取出最大

有一个字符串 "aaddfdfdercfghfyttefsfsfewretr123trefg5624sdfcgvfdgte6435234532",现在需要取出里面出现次数最多的字符 第一种方法-装饰器 class get_max_count_string:    def __init__(self,func):        self.func=func        self.count={}    def __call__(self, args):        for s in

java 每日习题(七)统计字符串中字母、空格、数字和其它字符的个数

题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 先把String转化成array,再通过Character中的几个方法对每个char进行判断. 下面是Character类的介绍: Character 类在对象中包装一个基本类型 char 的值.Character 类型的对象包含类型为 char 的单个字段. 此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然. package everyDay; import java

【c++程序】统计字符串中字符出现次数

#include<iostream> #include<string> //#include<cstring> using namespace std; int main() { string str; cout<<"input some text:"<<endl; getline(cin,str); //char str[200]; //cin.getline(str,200); int cnt[256]={}; for(i

用python统计list中各元素出现的次数(同理统计字符串中各字符出现的次数)

统计list中各元素出现的次数,下面的方法也适用于统计字符串中各字符出现的次数 1.用字典的形式来处理 a = "abhcjdjje" a_dict = {}for i in a: a_dict[i] = a.count(i)print(a_dict) 2.用count函数直接打印出来 L = [2,4,5,6,2,6,0,4] for i in L: print("%d的次数:%d"%(i,L.count(i))) 3.用collections的Counter函数

统计字符串中出现最多的字母

转载自喜欢JS的无名小站 let str = "aabbccdd", 统计字符串中出现最多的字母 方法一 关键方法为 String.prototype.charAt 核心理念为:先遍历字符串中所有字母,统计字母以及对应显示的次数,最后是进行比较获取次数最大的字母. /** * 获取字符串中出现次数最多的字母 * @param {String} str */ function getChar(str) { if (typeof str !== 'string') return // 判断

算法题之统计字符串中出现最多的字母

算法题之统计字符串中出现最多的字母 代码: <script> var arr = []; function txt(str) { var j = 0; for(var i = 0; i < str.length; i++) { if(arr.indexOf(str[i]) == -1) { arr.push(str[i]); } } for(var j = 0; j < arr.length; j++) { var s = arr[j]; var dd = str.split(s)

Java实现统计某字符串在另一个字符串中出现的次数

面试时会经常考这样的题目,估计也不让使用正则表达式.还好这个算法还算简单,不过在草稿纸上写难免会出现运行异常,好吧,面试官赢了,乃们屌丝就实实在在的把代码码出来吧. 下面是实现代码: /** * 统计某字符串在另一个字符串中出现的次数 * * */ public class CountHit { public static void main(String[] args) { String a = "123456abcde6ab"; String b = "6abc"