代码片段来源:https://github.com/Show-Me-the-Code/python/tree/master/A1014280203/4
精彩代码片段
for word in complete_text.lower().split():
records[word] = records.get(word, 0) + 1
题目
任一个英文的纯文本文件,统计其中的单词出现的个数。
原思路:
- 将文件中的转义符
\n
,\t
替换成空格- 将文件内容以空格切成数组然后转为元组(去重)
tuple_a
- 再定义一个数组
list_a
内容=文件内容以空格切隔- 建一个二维数组
list_b
,保存单词与对应的数量- 在一个
white
中(终止条件lista长度=0)用for
遍历tuple_a
,用for
判断在list_a
中是否存在,如果存在:在list_b
中新增/修改 数组(单词,出现的次数),并使用下标将list_a
对应的单词删除,跳出循环
问题点:
最后一步使用两个for稍微麻烦,二维数组list_b不好排序
新代码的精彩点:代码精简,且易于理解
#complete_text为文章内容('t 、're之类的缩写已转换)
#records为字典
for word in complete_text.lower().split():
records[word] = records.get(word, 0) + 1
- 采取直接便利文章的方法,然后使用字典来记录单词及对应的次数
- dict[key] = value ,字典的key不能重复,每次执行可以认为是修改
- get()方法在字典中没有key时返回value=0,有则返回真实的value,用于计算单词出现的次数
网友评论