Question
给定文件,统计其中包含的各字母个数,输出其中数量最多的 5 个字母及其个数。
注:不能使用内嵌模块或方法
Solution
import string
low = string.ascii_lowercase
up = string.ascii_uppercase
temp, res = {}, {}
# get every string
with open("count_sr.txt", "r") as f:
contents = f.read()
for item in contents:
count = temp.get(item, 0)
temp[item] = count + 1
# get lowercase dict
for i in range(26):
res[low[i]] = temp.get(low[i], 0) + temp.get(up[i], 0)
keys = list(res.keys())
# insert sort keys
for j in range(1, 26):
for k in range(j, 0, -1):
if res[keys[k - 1]] < res[keys[k]]:
keys[k - 1], keys[k] = keys[k], keys[k - 1]
else:
break
for _ in range(5):
print(keys[_], res[keys[_]])