统计附件文件的小写字母a-z的字符分布,即出现a-z字符的数量,并输出结果。同时请输出文件一共包含的字符数量。
注意输出格式,各元素之间用英文逗号(,)分隔。
答案可能包含a-z共26个字符的分布,如果某个字符没有出现,则不显示,输出顺序a-z顺序。
输出示例
共999字符,a:11,b:22,c:33,d:44,e:55
我的代码
f=open('latex.log').read()
sum=0
dic={}
for i in f:
if i in ['a','b','c','d','e','f','g','h','i','j','k','l','n','m','o','p','q','r','s','t','u','v','w','x','y','z']:
dic[i]=dic.get(i,0)+1
sum+=1
print('共{}字符'.format(sum),end='')
items=list(dic.items())
items.sort(reverse=False) #按字母排序
for t in range(len(items)):
word,count=items[t]
print(',{}:{}'.format(word,count),end='')
参考代码
f = open("latex.log")
cc = 0
d = {}
for i in range(26):
d[chr(ord('a')+i)] = 0
for line in f:
for c in line:
d[c] = d.get(c, 0) + 1
cc += 1
print("共{}字符".format(cc), end="")
for i in range(26):
if d[chr(ord('a')+i)] != 0:
print(",{}:{}".format(chr(ord('a')+i), d[chr(ord('a')+i)]), end="")
使用 ord(‘a’)+i 配合 range()函数 可以遍历一个连续的字符表。