3-2 从单词中获取单词出现的频率信息,并把他们写进对应的列表里

Posted 打不过小怪兽leer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3-2 从单词中获取单词出现的频率信息,并把他们写进对应的列表里相关的知识,希望对你有一定的参考价值。

流畅的python字典中的示例3-2

创建一个单词从其出现情况的映射

 1 import sys
 2 import re
 3 
 4 WORD_RE = re.compile(r\w+)
 5 
 6 index = {}
 7 
 8 with open(sys.argv[1], encoding=utf-8) as fp:
 9     for line_no, line in enumerate(fp, 1):
10         for match in WORD_RE.finditer(line):
11             word = match.group()
12             column_no = match.start() + 1
13             location = (line_no, column_no)
14             occurrences = index.get(word, [])
15             occurrences.append(location)
16             index[word] = occurrences
17 
18 for word in sorted(index, key=str.upper):
19     print(word, index[word])

【理解点】

  • sys.argv[1]的作用是什么?如何使用?
  • enumerate()函数的作用是什么,如何使用?
  • word的查询频率是什么?

【运行结果】

1 # 在index0.py下创建一个aa.txt文件,存入单词
2 F:\python_interface_test\python_interface_test\prepare_data>python index0.py aa.txt
3 16 [(14, 19)]
4 2006 [(11, 93)]
5 21 [(1, 51)]
6 21st [(8, 29)]
7 27 [(1, 41)]
8 a [(2, 60), (5, 30), (6, 73)]
9 against [(4, 61)]

 

【优化】

 1 import sys
 2 import re
 3 
 4 WORD_RE = re.compile(r\w+)
 5 
 6 index = {}
 7 
 8 with open(sys.argv[1], encoding=utf-8) as fp:
 9     for line_no, line in enumerate(fp, 1):
10         for match in WORD_RE.finditer(line):
11             word = match.group()
12             column_no = match.start() + 1
13             location = (line_no, column_no)
14             
15             index.setdefault(word, []).append(location )
16 
17 for word in sorted(index, key=str.upper):
18     print(word, index[word])

 

以上是关于3-2 从单词中获取单词出现的频率信息,并把他们写进对应的列表里的主要内容,如果未能解决你的问题,请参考以下文章

软件测试第二次作业 - 写一个Java程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。

写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”);

:写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”).

从频率词典中获取字数和平均长度

python 从字典中找到出现频率高的单词

2022-11-10:写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率。 为了简单起见,你可以假设: words.txt只包括小写字母和 ‘ ‘ 。 每个单词只由小写