我必须构建一个程序,该程序读取一个文件,其中包含有关文章修订的信息,并从文件中创建两个字典。该程序将忽略所有行,除了" REVISION"线
第一个字典中的每个条目都有一个键,它是一个编辑器,一个值是由该编辑器修改的一组(或列表)文章,即:
{editor: {set of articles revised by editor}}
第二个字典中的每个条目都有一个键,它是一个文章和一个值,它是一个元组(或列表),包含编辑的编辑和修改文章的编辑器(或列表),即:< / p>
{article: (count of edits, {set of editors who revised the article})}
以下是文件中的示例日志条目:
REVISION 4781981 72390319 Steven_Strogatz 2006-08-28T14:11:16Z SmackBot 433328
CATEGORY American_mathematicians
IMAGE
MAIN Boston_University MIT Harvard_University Cornell_University
TALK
USER
USER_TALK
OTHER De:Steven_Strogatz Es:Steven_Strogatz
EXTERNAL http://www.edge.org/3rd_culture/bios/strogatz.html
TEMPLATE Cite_book Cite_book Cite_journal
COMMENT ISBN formatting &/or general fixes using [[WP:AWB|AWB]]
MINOR 1
TEXTDATA 229
一旦我创建了词典,我就必须制作几个处理&#34; TOP n EDITORS&#34;并显示修改了大部分文章的编辑(编辑的用户名和编辑修改的文章数)以及最经常修改的文章等。
这是我到目前为止所做的:
def user_input(editors, articles, filename):
try:
file=open(filename)
count=0
editors={}
articles={}
for line in file:
record=line.strip().split()
if record[0]=="REVISION":
editor_name=record[5]
article_name=record[3]
if editor_name not in editors:
editors[editor_name]=set({article_name})
else:
editors[editor_name].add({article_name})
if article_name not in articles:
articles[article_name]=set({editor_name})
count+=1
else:
articles[article_name].add(editor_name)
except FileNotFoundError:
print("file was not found")
return filename
print("""
Please select one of the following menu options:\n
QUIT
HELP
INPUT filename
TOP n EDITORS
TOP n EDITS
TOP n ARTICLES
""")
command=input("select a menu option: ").split()
if command[0].lower()=="quit":
exit()
我不知道从哪里开始。任何帮助将不胜感激。