将文件读入字典并保持计数

时间:2012-10-29 02:32:36

标签: python file function dictionary

我有一个包含4个不同文章的文本文件,其中包含文字,每篇文章都以文字"<NEW ARTICLE>"分隔:

<NEW ARTICLE>
Take a look at 
what I found.
<NEW ARTICLE>
It looks like something
dark and shiny.
<NEW ARTICLE>
But how can something be dark
and shiny at the same time?
<NEW ARTICLE>
I have no idea.

我想要做的是阅读此文件并将其转换为字典,然后记录使用"<NEW ARTICLE>" or "ARTICLE>"的次数。这样,当我搜索单词"dark and shiny"时,它会显示第2和第3次"<NEW ARTICLE>"

要搜索的单词将是用户输入的变量,我想我可以弄清楚如何在文件中搜索它,我只是在弄清楚如何将文件的内容转换为字典然后每当"<NEW ARTICLE>" or "ARTICLE>"出现时保持计数,以便当用户搜索文件中的单词时,它会显示存在单词的文章编号(可以是多篇文章中单词的多个实例)。

输出看起来像这样:

Input - Word(s) to search for: dark and shiny
Output - Word(s) found in articles: 2 3
Input - Read which article?: 2
Output - It looks like something dark and shiny.

使用Python 3,谢谢。

1 个答案:

答案 0 :(得分:1)

这个问题听起来像是我的作业。所以我会给你一个算法,让你自己实现它:

  1. 创建一个空字典
  2. 维护一个整数(让我们称之为articleNum)。从0开始。
  3. 遍历输入文件(首先打开它进行阅读,最好使用with
  4. 如果您看到的行包含<NEW ARTICLE>,则会增加articleNum
  5. 否则,遍历该行中的单词(使用line.split()
  6. 对于该行中的每个单词,检查该单词是否为字典中的键
  7. 如果它还不是字典中的键,则将其作为字典的键添加,并使其值为列表,其中包含值articleNum
  8. 如果它已经是字典中的键,则将articleNum附加到此键的值
  9. 读完文件后,作为输入用户。
  10. 从字典中获取用户输入的值(如果输入已经是字典中的键);这应该是一个整数列表
  11. 将此整数列表打印为用户,作为输出
  12. 希望这有帮助