私には深刻な問題がある宿題があります。重要なのは、各行をタプルにし、これらのタプルをリストにすることです。のようにlist=[tuple(line1),tuple(line2),tuple(line3),...]
。その上、カンマで区切られた多くの文字列があります。"aei","1433","lincoln",...
質問は次のとおりです。
本は、著者の lastName、著者の firstName、タイトル、日付、および ISBN のタプルとして表すことができます。
readBook()
この情報を含むカンマ区切りの文字列を指定すると、本を表すタプルを返す関数 を作成します。readBooks()
本ごとにコンマ区切りの 1 行を含むテキスト ファイルの名前を指定すると、readBook()
タプルのリストを返すために使用する関数を記述します。タプルのそれぞれが 1 本の本を記述します。buildIndex()
によって返された本のリストを指定して、readBooks()
キーワードから本のタイトルへのマップを作成する関数 を作成します。キーワードは、書籍のタイトルに含まれる「a」、「an」、または「the」を除く任意の単語です。
これが私のコードです:
RC=("Chann", "Robbbin", "Pride and Prejudice", "2013", "19960418")
RB=("Benjamin","Franklin","The Death of a Robin Thickle", "1725","4637284")
def readBook(lastName, firstName, booktitle, date, isbn):
booktuple=(lastName, firstName, booktitle, date, isbn)
return booktuple
# print readBook("Chen", "Robert", "Pride and Prejudice", "2013", "19960418")
def readBooks(file1):
inputFile = open(file1, "r")
lines = inputFile.readlines()
book = (lines)
inputFile.close()
return book
print readBooks("book.txt")
BooklistR=[RC,RB]
def buildIndex(file2):
inputFile= open("book.txt","r")
Blist = inputFile.readlines()
dictbooks={}
for bookinfo in Blist:
title=bookinfo[2].split()
for infos in title:
if infos.upper()=="A":
title.remove(infos)
elif infos.upper()=="THE":
title.remove(infos)
elif infos.upper()=="AN":
title.remove(infos)
else:
pass
dictbooks[tuple(title)]= bookinfo[2]
return dictbooks
print buildIndex("book.txt")
#Queries#
def lookupKeyword(keywords):
dictbooks=buildIndex(BooklistR)
keys=dictbooks.viewkeys()
values=dictbooks.viewvalues()
for keybook in list(keys):
for keyw in keywords:
for keyk in keybook:
if keyw== keyk:
printoo= dictbooks[keybook]
else:
pass
return printoo
print lookupKeyword("Robin")