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

通過上述的幾種方法,我們不難總結出解決這種問題的思路:從鍵盤隨機輸入一段字符串,然后循環遍歷字符串,通過循環字符串中的每一個字符,統計各類字符出現的次數,循環遍歷字符串


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM