Python 2.7 返回具有“0”的图书的元组;关键词";共同的
我有一个保存为元组列表的数据库,每个元组有4个元素。第一个元素是书的编号,第二个元素是书的名称,第三个元素是书的作者,第四个元素是书的出版年份 我需要一个名为Python 2.7 返回具有“0”的图书的元组;关键词";共同的,python-2.7,Python 2.7,我有一个保存为元组列表的数据库,每个元组有4个元素。第一个元素是书的编号,第二个元素是书的名称,第三个元素是书的作者,第四个元素是书的出版年份 我需要一个名为findBook(L,keyword)的函数,该函数以元组列表的形式接收书籍,keyword作为字符串,并返回其中包含关键字的所有书籍的元组。 这本书的元组应该是这样的: (BookNumber, BookName, Author, YearPublished) 如何编写一个搜索引擎来帮助我们找到这些特定的书籍 我试着从这个开始,但它不起
findBook(L,keyword)
的函数,该函数以元组列表的形式接收书籍,keyword
作为字符串,并返回其中包含关键字的所有书籍的元组。
这本书的元组应该是这样的:
(BookNumber, BookName, Author, YearPublished)
如何编写一个搜索引擎来帮助我们找到这些特定的书籍
我试着从这个开始,但它不起作用:
def findBook(L,keyword):
for i in L:
BookNumber=i[0]
BookName=i[1]
Author=i[2]
YearPublished=i[3]
i=(BookNumber,BookName,Author,YearPublished)
if keyword == str(BookName) or keyword==BookNumber or keyword==str(Author) or keyword==str(YearPublished):
return i
因此,如果我有一本哈利波特的书,我输入关键字:“harry”,它将返回所有元组。您可以迭代可能包含您要查找的关键字的条目,将它们分组到一个列表中,该列表将在流程结束时返回:
def findBook(L, keyword):
books = list()
for book in L:
book = tuple(entry for entry in book)
if [i for i in book if str(i).find(keyword) != -1]:
books.append(book)
return books
L = [(2,"harry potter and the prisoner of azkaban ","J.K Rowling","1998"),
(3,"harry potter and the half blood prince","J.K Rowling","2007"),
(6,"Harry potter and deathly hallows","J.K Rowling","2010"),
(8,"The secret","someone","2009")]
print findBook(L, "harry")
输出:
[(2, 'harry potter and the prisoner of azkaban ', 'J.K Rowling', '1998'), (3, 'harry potter and the half blood prince', 'J.K Rowling', '2007')]
请注意,第三个条目未找到,因为关键字是“harry”而不是“harry”,要进行不区分大小写的搜索,请使用:
def findBook(L, keyword):
books = list()
keyword = keyword.tolower()
for book in L:
book = tuple(entry for entry in book)
if [i for i in book if str(i).tolower().find(keyword) != -1]:
books.append(book)
return books
它一直告诉我L没有定义。你需要把信息传递给参数;调用必须类似于:findBook(library\u with\u books,“word”)
。你打算如何调用函数?我必须写一个至少有20本书的列表,并使用来自书名的单词。用你拥有的书的列表为你的问题添加一个编辑,并显示你试图如何调用函数findBook()
;如果你不说你的问题是什么,我们就无法帮你解决它总是返回一个空列表。