python解决不区分大小写统计问题
  6DMaaPzJglxt 2023年12月05日 80 0


遇到陌生网友问不知道怎么不区分大小写统计词频问题

python解决不区分大小写统计问题_写通过


题目是这样的:

python解决不区分大小写统计问题_写通过_02


将字母先全部转为小写,把特殊字符全部用空格代替,以空格分割,加入字典即可

fin=str(input("输入一个英文句子:"))
for ch in fin:
    if 65<=ord(ch)and ord(ch)<=90:
        fin=fin.replace(ch,chr(ord(ch)+32))#大写通过ascall转小写
for ch in '"";!+-(),.[]{}<<>>:':
    fin=fin.replace(ch," ")#将特殊符号转为空格
words=fin.split()#split以空格为分割符
pac={}#定义一个空字典
for i in words:
    pac[i]=pac.get(i,0)+1#返回pac[key]因为唯一性可避免单词重复
k=0#统计总词汇
sum=""
for i,j in pac.items():#字典二元组查找
    k+=1
    sum+=i+" "
print('全部单词如下:\n',sum)
print('共有{',str(k),'}个单词')

python解决不区分大小写统计问题_元组_03


优化代码:将非字母的字符全部转为空格符号直接分割,简单直接,不用考虑特殊符号

words=str(input("输入一个英文句子:"))
for ch in words:
    if ord(ch)>=65 and ord(ch)<=90:#大写字母对应的Ascall
        words=words.replace(ch,chr(ord(ch)+32))#大写通过Ascall转小写
    if ord(ch)<97 or ord(ch)>122:#非小写字母对应的Ascall
        words=words.replace(ch,' ')#空格代替所有非小写字母
pac={}#定义一个空字典
for i in words.split():
    pac[i]=pac.get(i,0)+1#返回pac[key]因为唯一性可避免单词重复
k=0#统计总词汇
sum=''
for key in pac:#一元组查找
    k+=1
    sum+=key+' '
number={k}#不同单词数量的字典
print('全部单词如下:\n',sum)
print('共有',number,'不同个单词')

基本上ok,想改的话加点自己的东西就好了
有时间我都会解答简单问题
睡觉,最后peace!


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月05日 0

暂无评论

推荐阅读
6DMaaPzJglxt