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è) 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# 統(tǒng)計(jì)個(gè)數(shù) return ans if __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初始值0 new = []# 建立一個(gè)新列表用于存放有序的key st = 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è) 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# 統(tǒng)計(jì)個(gè)數(shù) return ans if __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初始值0 new = []# 建立一個(gè)新列表用于存放有序的key st = 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 += s print(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 += s print(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í)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python進(jìn)階學(xué)習(xí)之特殊方法實(shí)例詳析
一般說(shuō)來(lái),特殊的方法都被用來(lái)模仿某個(gè)行為。下面這篇文章主要給大家介紹了關(guān)于Python進(jìn)階學(xué)習(xí)之特殊方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起看看吧。2017-12-12PyQt5學(xué)習(xí)之QThread類的使用詳解
QThread是Qt線程類中最核心的底層類。要使用QThrea開(kāi)始一個(gè)線程,可以創(chuàng)建它的一個(gè)子類,然后覆蓋其QThread.run()函數(shù)。這篇文章就來(lái)和大家聊聊QThread類的使用,感興趣的可以學(xué)習(xí)一下2022-12-12Python基于進(jìn)程池實(shí)現(xiàn)多進(jìn)程過(guò)程解析
這篇文章主要介紹了Python基于進(jìn)程池實(shí)現(xiàn)多進(jìn)程過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04Python列表推導(dǎo)式、字典推導(dǎo)式與集合推導(dǎo)式用法實(shí)例分析
這篇文章主要介紹了Python列表推導(dǎo)式、字典推導(dǎo)式與集合推導(dǎo)式用法,結(jié)合實(shí)例形式分析了Python三種推導(dǎo)式的概念、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2018-02-02使用matlab或python將txt文件轉(zhuǎn)為excel表格
這篇文章主要介紹了matlab或python代碼將txt文件轉(zhuǎn)為excel表格,本文通過(guò)matlab代碼和python 代碼給大家詳細(xì)介紹,需要的朋友可以參考下2019-11-11在Python的Django框架中實(shí)現(xiàn)Hacker News的一些功能
這篇文章主要介紹了在Python的Django框架中實(shí)現(xiàn)Hacker News的一些功能,包括投票“頂”評(píng)論等功能,需要的朋友可以參考下2015-04-04Go語(yǔ)言基于Socket編寫(xiě)服務(wù)器端與客戶端通信的實(shí)例
這篇文章主要介紹了Go語(yǔ)言基于Socket編寫(xiě)服務(wù)器端與客戶端通信的實(shí)例,包括實(shí)現(xiàn)基于自定義通訊協(xié)議的Socket通信,需要的朋友可以參考下2016-02-02python 刪除列表里所有空格項(xiàng)的方法總結(jié)
下面小編就為大家分享一篇python 刪除列表里所有空格項(xiàng)的方法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04