煦恒. 2021-06-16 21:41 采纳率: 77.8%
浏览 153

用Python中for或者其他做

 

  • 写回答

3条回答 默认 最新

  • CSDN专家-文盲老顾 2021-06-16 21:54
    关注
    import re
    n = input('type some word:').lower()
    z = {w:len(re.split('(?<![a-z])'+w+'(?![a-z])',n))-1 for w in set(re.findall('[a-z]+',n))}
    print('\n'.join('单词“'+w+'”出现了'+str(z[w])+'次' for w in z))

    n = input('type some word:').lower()

    将录入的内容全部转换成小写,避免因单词位置不同,产生的大小写区分现象,例如 That is a ball,that is my ball.

    re.findall('[a-z]+',n)

    将录入的内容用正则提取出所有单词,这里不提取连写、多单词'连接,有需要可以修改正则'[a-z]+'的部分

    re.findall得到的是一个list,可出现重复内容,外边加个set,就编程集合了,他自动就排重了

    然后遍历这个集合,用单词做键,用正则使用单词切割录入的字符串,得到的列表长度减1就是单词出现次数,单词和出现次数组成词典,放到一个大列表里

    然后对列表进行遍历,拼接输出内容,并在列表拼接的内容之间加一个回车,就得到最终结果了

    评论

报告相同问题?