python統(tǒng)計(jì)字符串中字母出現(xiàn)次數(shù)代碼實(shí)例
代碼如下
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)
上面一共給出了三種方法,均是以字典的形式輸出,但可以看出,通過(guò)第二三種的內(nèi)置函數(shù)方法更簡(jiǎn)便
def countchar(str):str = str.lower()# 化成小寫(xiě)ans = []for i in range(26): #列表賦初值 26 個(gè) 0ans.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# 統(tǒng)計(jì)個(gè)數(shù)return ansif __name__ == '__main__':str = input()print(countchar(str))def countchar(st): #定義數(shù)個(gè)數(shù)的函數(shù)keys = [chr(i + 97) for i in range(26)]# 生成26個(gè)字母的key列表di = dict().fromkeys(keys, 0)# 賦給每個(gè)key初始值0new = []# 建立一個(gè)新列表用于存放有序的keyst = st.lower()# 將所有輸入的字符改為小寫(xiě)for s in st: #遍歷字符串di[s] = st.count(s)# 輸出每個(gè)字符的個(gè)數(shù), 存放到字典里def countchar(str):str = str.lower()# 化成小寫(xiě)ans = []for i in range(26): #列表賦初值 26 個(gè) 0ans.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# 統(tǒng)計(jì)個(gè)數(shù)return ansif __name__ == '__main__':str = input()print(countchar(str))def countchar(st): #定義數(shù)個(gè)數(shù)的函數(shù)keys = [chr(i + 97) for i in range(26)]# 生成26個(gè)字母的key列表di = dict().fromkeys(keys, 0)# 賦給每個(gè)key初始值0new = []# 建立一個(gè)新列表用于存放有序的keyst = st.lower()# 將所有輸入的字符改為小寫(xiě)for s in st: #遍歷字符串di[s] = st.count(s)# 輸出每個(gè)字符的個(gè)數(shù), 存放到字典里for k in keys: #遍歷keys, 將其在di中的值添加到新列表, 獲得有序的26個(gè)字母的個(gè)數(shù)new.append(di[k])return new# 返回存有26個(gè)字母?jìng)€(gè)數(shù)的列表if __name__ == '__main__':st = input()# 輸入字符串str1 = ''#定義一個(gè)空字符串for s in st: #遍歷輸入的字符串if s.isalpha() != 0: #只有字母才添加到新字符串, 標(biāo)點(diǎn)忽略不計(jì)str1 += sprint(countchar(str1))# 輸出列表for k in keys: #遍歷keys, 將其在di中的值添加到新列表, 獲得有序的26個(gè)字母的個(gè)數(shù)new.append(di[k])return new# 返回存有26個(gè)字母?jìng)€(gè)數(shù)的列表if __name__ == '__main__':st = input()# 輸入字符串str1 = ''#定義一個(gè)空字符串for s in st: #遍歷輸入的字符串if s.isalpha() != 0: #只有字母才添加到新字符串, 標(biāo)點(diǎn)忽略不計(jì)str1 += sprint(countchar(str1))# 輸出列表
上面的兩種方法也是輸出字符串的字母出現(xiàn)次數(shù),略有不同的是,這里它先設(shè)定了26個(gè)字母,并使其對(duì)應(yīng)的初始值為0,然后統(tǒng)計(jì)字符串中的各字母出現(xiàn)次數(shù),每個(gè)字母出現(xiàn)了多少次,即為其對(duì)應(yīng)的初始值處的值。而沒(méi)出現(xiàn)的字母,其對(duì)應(yīng)的值則仍為初始值0
通過(guò)上述的幾種方法,我們不難總結(jié)出解決這種問(wèn)題的思路:從鍵盤(pán)隨機(jī)輸入一段字符串,然后循環(huán)遍歷字符串,通過(guò)循環(huán)字符串中的每一個(gè)字符,統(tǒng)計(jì)各類字符出現(xiàn)的次數(shù),循環(huán)遍歷字符串
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)2. 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法3. 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法4. 得到XML文檔大小的方法5. ASP.NET Core實(shí)現(xiàn)中間件的幾種方式6. 如何在jsp界面中插入圖片7. jsp實(shí)現(xiàn)textarea中的文字保存換行空格存到數(shù)據(jù)庫(kù)的方法8. 利用CSS3新特性創(chuàng)建透明邊框三角9. XML入門的常見(jiàn)問(wèn)題(二)10. ASP常用日期格式化函數(shù) FormatDate()
