上面一共給出了三種方法,均是以字典的形式輸出,但可以看出,通過第二三種的內建函式方法更簡便
'''
'''def
countchar
(str):
str=
str.lower(
)#化成小寫
ans=
for i in
range(26
):#列表賦初值 26 個 00)
for i in
str:if(
ord(i)
>=
ord(
'a')
andord
(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個字母的個數
)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
通過上述的幾種方法,我們不難總結出解決這種問題的思路:從鍵盤隨機輸入一段字串,然後迴圈遍歷字串,通過迴圈字串中的每乙個字元,統計各類字元出現的次數,迴圈遍歷字串
好文要頂 關注我 收藏該文
5 6字串的統計字串
題目 給定乙個字串str,返回str的統計字串。補充題目 給定乙個字串的統計字串cstr,再給定乙個整數index,返回cstr所代表的原始字串上的第index個字元。實現public class getcountstring string res string.valueof str.charat...
1227 字串統計
1227 字串統計 description 對於給定的乙個字串,統計其中數字字元出現的次數。input 輸入資料有多行,第一行是乙個整數n,表示測試例項的個數,後面跟著n行,每行包括乙個由字母和數字組成的字串。output 對於每個測試例項,輸出該字串中數值的個數,每個輸出佔一行。sample in...
66 字串統計
66 字串統計 問題描述 明明最近在做乙個有關字串的統計工作。兩個由小寫字母組成的字串s1和s2,明明需要統計出以下四種關係 1 在s1或s2中存在的字母 包括在s1和s2中都存在的字母 2 在s1中且在s2中的字母 3 在s1中但不在s2中的字母,在s2中但不在s1中的字母 4 不在s1中且也不在...