python基础编程20191225

别等时光非礼了梦想. 提交于 2019-12-26 00:45:31

就一题, 词频统计,主要纠结了以下地方:

1.当没有找到#也要把这一行的字符串存起来

2.字符串长度>15的时候只取前15个字符

3.多条件排序算法sorted(d.items(),key=lambda d:(-d[1],d[0]))

4.还有如果不是合法字符,如果非法字符存在多个的时候index也要移动,还有最后结尾的判断。

new=[]
while(True):
    s=input()
    s=s.lower()
    if '#' in s:
        new.append(s[:s.find('#')])
        break
    else:
        new.append(s)
d={}
for s in new:
    index=0
    for j in range(0,len(s)):
        if (not s[j].isalnum()) and s[j]!='_' :
            if index!=j:
                if j-index>15:
                    d[s[index:index+15]]=d.get(s[index:index+15],0)+1
                else:
                    d[s[index:j]]=d.get(s[index:j],0)+1
            index=j+1
        else:
            if j==len(s)-1:
                if j+1-index>15:
                    d[s[index:index+15]]=d.get(s[index:index+15],0)+1
                else:
                    d[s[index:j+1]]=d.get(s[index:j+1],0)+1
num=int(len(d)*0.1)
print(len(d))
l=sorted(d.items(),key=lambda d:(-d[1],d[0]))
i=0
for i in range(0,num):
    result=str(l[i][1])+':'+str(l[i][0])
    print(result)

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!