最近舍友在学Python,有个作业是为了解决统计单词出现次数并把结果输出成字典这个问题,感觉挺有趣的,就写了一段demo代码,分享在博客上,希望对你有所帮助。

1.解决思路

(1)排除掉其他干扰项。 我们的目标是统计英文单词出现次数,拿到的数据源是一段由英文单词和各种符号的片段,所以干扰项就是各种符号。因为涉及的符号过多,只需要a-z和A-Z,不可能把所有的字符全部用replace方法替换掉,所以自然而然的想到正则匹配,在python里面的re模块,用里面的sub方法来进行干扰项的过滤。

注意:要保留完整的单词就不能把空格也去掉,把其它字符全替换成空格即可。

re.sub: 替换所有的匹配项,返回一个替换后的字符串,如果匹配失败,返回原字符串

(2)将单词分割成列表。 第一步中我们保留了空格,第二步我们就以空格为特点分割单词,生成列表。

注意:由于可能存在连续两个空格存在的情况,所以要用str.remove("")去除多余的空项

(3)生成字典的键列表。 建一个新的列表作为字典的键列表,遍历原来的单词列表,如果单词列表里面的单词不在新列表里,就往新列表里添加该单词。

(4)将单词作为结果字典的键。 使用字典的fromkeys方法来把第三步生成的key列表作为结果字典的键。

dict.fromkeys(seq[, value])
seq -- 字典键值列表。
value -- 可选参数, 设置键序列(seq)的值。

(5)遍历key列表,利用count函数统计单词出现次数

2.代码实现

# 统计单词出现次数并把结果输出成字典
# 数据输入
str = "Hello world, There are some test words. Hello world, There are some test words. Haha!"# 过滤规则:过滤掉所有非字母的字符
import re
str = re.sub(r"[^a-zA-Z]+", " ",str)
print("过滤后的字符串:",str)#拆分成列表
str = str.split(" ")
# 去除多余的空项
str.remove("")
print("拆分成列表:",str)# 生成字典的key列表
dict_keys = []
for i in str:if i not in dict_keys:dict_keys.append(i)
print("key列表:",dict_keys)# 输出字典# 定义空字典
words_dict = {}# 往字典写入key值
words_dict.fromkeys(dict_keys)# 遍历key列表,利用count函数统计单词出现次数
for j in dict_keys:words_dict[j] = str.count(j)
print("字典:",words_dict)

3.效果展示

python统计英文单词出现次数并把结果生成字典相关推荐

  1. python统计英文单词个数_统计英文单词的个数的python代码 及 字符串分割

    字符串分割 str="a|and|hello|||ab" alist = str.split('|') print alist结果 str="a hello{这里换成5个 ...

  2. python统计单词出现次数 青少年编程电子学会python编程等级考试二级真题解析2022年3月

    目录 python统计单词次数 一.题目要求 1.编程实现 2.输入输出 3.评分标准</

  3. python统计文章单词次数_Python实现的统计文章单词次数功能示例

    本文实例讲述了Python实现的统计文章单词次数功能.分享给大家供大家参考,具体如下: 题目是这样的:你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都是英文,请统计出你认 ...

  4. split函数python统计英文单词_Python实现统计英文单词个数及字符串分割代码

    Python实现统计英文单词个数及字符串分割代码 这篇文章主要介绍了Python实现统计英文单词个数及字符串分割方法,本文分别给出代码实例,需要的朋友可以参考下 字符串分割 代码如下: str=&qu ...

  5. python统计英文单词个数_Python实现统计英文单词个数及字符串分割代码

    字符串分割 代码如下: str="a|and|hello|||ab" alist = str.split('|') print alist 结果 代码如下: str="a ...

  6. python统计元素出现次数(accumarray实现)

    文章目录 引言 解决方案 numpy方法 pandas方法 总结 引言  本文介绍了利用python中的numpy模块构建二维的频次矩阵,对应于matlab中的accummarrary()函数,mat ...

  7. python统计单词出现次数

    统计英文儿歌<twinkle twinkle little star>中,使用到的单词及其出现次数.要求去除单词大小写的影响,不统计标点符号的个数,并按降序输出. Twinkle, twi ...

  8. python统计excel出现次数_Excel-统计元素出现次数和统计不重复元素的个数

    在实际工作中,我们经常遇到这样的情况,给你一个几千条几万条记录的表格,让你统计每个元素出现的次数,或者是让你统计一下总计有多少个不重复的元素.现在来简单介绍一下怎么处理这个问题,方法学了一次,就可以使 ...

  9. Python统计英文单词出现情况次数实验

    前些天发现了一个巨牛的人工智能学习电子书,通俗易懂,风趣幽默,无广告,忍不住分享一下给大家.(点击跳转人工智能学习资料) 一.题目 请统计附件hamlet.txt中出现的英文单词情况,统计并输出出现最 ...

最新文章

  1. 进制转换 位运算(包括补码、原码、反码、~0等一些零碎东西一次说清)
  2. 百度之星2014资格赛 1004 - Labyrinth
  3. MongoDB限制与阈值
  4. Java并发编程-ReentrantLock源码分析
  5. mysql连接命令行,从命令行连接到MySQL
  6. Java设计模式学习总结(2)——创建型模式之工厂模式
  7. php火的原因,重燃你的PHP安全之火
  8. 计算机系统-实模式/保护模式/虚拟86模式
  9. 30美元攻陷Intel SGX enclave,Intel 不打算修复
  10. commons-lang常用工具类StringEscapeUtils使用
  11. BEAMnrc参数设置_MainInputs(3)
  12. 缓冲器(跟随器)电路
  13. 背景图片轮播html代码,一款常见的背景图片轮播动效
  14. python plc fx5u_三菱PLC FX5U CPU模块专用指令的处理内容
  15. HTML+CSS初学者练习项目5:利用DIV+CSS制作个人CPS网站《汽车坐垫点评网》——首页
  16. spring读取外部文件+SpEL
  17. WPF的打印原理 实现打印页眉页脚和打印预览
  18. Amlogic A311D2 八核 Arm 处理器支持高达 16GB RAM
  19. SQL注入漏洞攻守之道
  20. 360网站卫士SQL注入绕过案例一个

热门文章

  1. GEEer成长日记九:Worldpop100m分辨率人口数据可视化及批量下载
  2. python 结束if_python – 如何退出if子句
  3. 【COCOS CREATOR 系列教程之三】PREFAB讲解CC项目如何多开与分享
  4. 空心等腰三角形java_如何用java画个等腰三角形.
  5. 什么是语义分割?原理+实现过程?
  6. BC1.2协议以及QC2.0/3.0快充协议学习笔记
  7. 为什么网线数据传输最大距离是100米?网线数据传输最大距离是100米
  8. 12T已达机械硬盘极限 未来突破靠氦气硬盘
  9. iOS开发之音频解析第三方框架介绍
  10. VBA批量操作excel文件