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)計其他字符運(yùn)行結(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)文章
Python ArcPy實(shí)現(xiàn)柵格圖像文件由HDF格式批量轉(zhuǎn)換為TIFF格式
這篇文章主要為大家詳細(xì)介紹了如何基于Python中Arcpy模塊,實(shí)現(xiàn)大量HDF格式的柵格圖像文件批量轉(zhuǎn)換為TIFF格式,有需要的小伙伴可以參考下2024-12-12
pandas把dataframe轉(zhuǎn)成Series,改變列中值的類型方法
下面小編就為大家分享一篇pandas把dataframe轉(zhuǎn)成Series,改變列中值的類型方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
關(guān)于Python連接Cassandra容器進(jìn)行查詢的問題
這篇文章主要介紹了Python連接Cassandra容器進(jìn)行查詢的問題,問題的關(guān)鍵在于尋找到Cassandra的9042端口,從而獲取數(shù)據(jù),具有內(nèi)容詳情跟隨小編一起看看吧2021-11-11
python中SQLAlchemy使用前端頁面實(shí)現(xiàn)插入數(shù)據(jù)
這篇文章主要介紹了SQLAlchemy使用前端頁面實(shí)現(xiàn)插入數(shù)據(jù),文章內(nèi)容介紹詳細(xì)巨頭有一定的參考價值,需要的小伙伴可以參考一下2022-03-03
使用django和vue進(jìn)行數(shù)據(jù)交互的方法步驟
這篇文章主要介紹了使用django和vue進(jìn)行數(shù)據(jù)交互的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Python入門教程 超詳細(xì)1小時學(xué)會Python
本文適合有經(jīng)驗的程序員盡快進(jìn)入Python世界.特別地,如果你掌握J(rèn)ava和Javascript,不用1小時你就可以用Python快速流暢地寫有用的Python程序.2006-09-09

