python如何統(tǒng)計字符串中字符的個數(shù)
1.遍歷計數(shù)
遍歷字符串的每個字符,遍歷的時候加入判斷是否為字母的條件 isalpha,如果結(jié)果為 True 則計數(shù)器加1,否則進(jìn)入下一個循環(huán)。
str_= "32Ss8nWn012" str_count = 0 # 字符串本身就是迭代器 for s in str_: if s.isalpha(): str_count += 1 # 輸出計數(shù)器 print(str_count)
5
2.匹配字母
2.1 字母表計數(shù)用string 模塊中的 ascii_lowercase 屬性,遍歷字母表,看看每個字母在我們的字符串中的數(shù)量,求和即可。然后還要注意:我們原始給定的字符串沒有規(guī)定大小寫,所以我們需要對原始字符串統(tǒng)一轉(zhuǎn)換成小寫字母(或者大寫字母)。
import string str_ = "32Ss8nWn012" str_count = 0 str_ = str_.lower() # 遍歷ascii碼中的小寫英文字母 for i in string.ascii_lowercase: # 內(nèi)置函數(shù)count效率高 str_count += str_.count(i) print(str_count)
5
2.2 字母表計數(shù)這個方法與上一個方法都是匹配字母表,只不過這里用的是正則表達(dá)。
import re str_ = "32Ss8nWn012" # [a-zA-Z]是匹配內(nèi)容,str_是待匹配的對象 str_ = re.findall('[a-zA-Z]',str_) print(len(str_))
5
3.統(tǒng)計每個字符的個數(shù)
alist=['l','am','a','student'] #先將列表轉(zhuǎn)化為字符串 str="" for i in alist: str+=i #統(tǒng)計無重復(fù)的字符 list=set(str) print(list) #利用count統(tǒng)計 li=[] for j in list: num=str.count(j) #print(j) print(num) li.append(num) print(li) #讓元素的個數(shù)與元素一一對應(yīng) log3 = dict(zip(list,li)) print(log3)
{'e', 'u', 's', 'l', 'm', 'd', 'n', 't', 'a'}
1
1
1
1
1
1
1
2
2
[1, 1, 1, 1, 1, 1, 1, 2, 2]
{'e': 1, 'u': 1, 's': 1, 'l': 1, 'm': 1, 'd': 1, 'n': 1, 't': 2, 'a': 2}
附:Python統(tǒng)計英文、中文、數(shù)字、空格等字符數(shù)
Python統(tǒng)計字母、中文、數(shù)字、空格等字符數(shù)
# 統(tǒng)計一行字符的不同字符個數(shù) str = input("請輸入一行字符:") count1 = count2 = count3 = 0 for s in str: if "a" <= s <= "z" or "A" <= s <= "Z": count1 += 1 # 英文計數(shù) elif 0x4e00 <= ord(s) <= 0x9fa5: # 中文的Unicode編碼范圍 count2 += 1 # 中文計數(shù) elif 48 <= ord(s) and ord(s) <= 57: count3 += 1 # 數(shù)字計數(shù) print("該行字符有空格{0}個".format(str.count(" "))) # 統(tǒng)計空格 print("該行字符有英文字符{0}個".format(count1)) # 計數(shù)統(tǒng)計,統(tǒng)計英文字符 print("該行字符有中文字符{0}個".format(count2)) # 計數(shù)統(tǒng)計,統(tǒng)計中文字符 print("該行字符有數(shù)字{0}個".format(count3)) # 計數(shù)統(tǒng)計,統(tǒng)計數(shù)字字符 print("該行字符有其他字符{0}個".format(len(str)-count1-count2-count3-str.count(" "))) # 統(tǒng)計其他字符
運行結(jié)果:
請輸入一行字符:哈哈哈哈哈哈哈哈哈哈哈哈哈哈,,,rhgi!@#$ eugi jvub us123456
該行字符有空格4個
該行字符有英文字符14個
該行字符有中文字符14個
該行字符有數(shù)字6個
該行字符有其他字符7個
小結(jié)
1.中文的Unicode編碼范圍0x4e00—0x9fa5
2.ord(x)函數(shù),返回單字符x表示的Unicode編碼
3.str.count(x),返回x子串出現(xiàn)的次數(shù)
總結(jié)
到此這篇關(guān)于python統(tǒng)計字符串中字符個數(shù)的文章就介紹到這了,更多相關(guān)python統(tǒng)計字符個數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pyorch之numpy與torch之間相互轉(zhuǎn)換方式
今天小編就為大家分享一篇Pyorch之numpy與torch之間相互轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12Python getattr()函數(shù)使用方法代碼實例
這篇文章主要介紹了Python getattr()函數(shù)使用方法代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08Python統(tǒng)計單詞出現(xiàn)的次數(shù)
最近經(jīng)理交給我一項任務(wù),統(tǒng)計一個文件中每個單詞出現(xiàn)的次數(shù),列出出現(xiàn)頻率最多的5個單詞。本文給大家?guī)砹藀ython 統(tǒng)計單詞次數(shù)的思路解析,需要的朋友參考下吧2018-04-04python區(qū)分不同數(shù)據(jù)類型的方法
這篇文章主要介紹了python區(qū)分不同數(shù)據(jù)類型的方法實例以及相關(guān)知識點,需要的朋友們學(xué)習(xí)下。2019-10-10Django執(zhí)行python?manage.py?makemigrations報錯的解決方案分享
相信用過很多Django makemigrations的人都會遇到過makemigrations時會發(fā)生報錯,下面這篇文章主要給大家介紹了關(guān)于Django執(zhí)行python?manage.py?makemigrations報錯的解決方案,需要的朋友可以參考下2022-09-09