def search(self, string):
result = ""
if len(string) >= 4:
for book in self.collection:
if (string.lower() in book.get_title().lower):
result += str(book)
return result
我有一个库类,它有library.collection作为图书对象的列表,现在我想搜索"字符串"并返回我想要的书,上面是我的代码。 book类有方法get_title(),返回"标题"本书adn str(book)返回一个字符串" book id:book title"
这很有效,例如当我搜索""" 我得到了
10: Under the Net
11: Under the Net
117: Under the Skin
但我有两本书"在网下#34;
我只是想找到其中一个,所以对于我搜索的每个字符串,如果有一本书的几个副本,我只想在我的结果中添加一个str(book)。 任何人都可以帮我这个吗?
答案 0 :(得分:-1)
使用集合而不是字符串作为结果。集合不允许重复,并且向元素添加元素比附加到字符串更快。如果这是你想要的,你可以使用join
在最后创建一个字符串。
def search(self, string):
results = set()
if len(string) >= 4:
for book in self.collection:
if (string.lower() in book_title.get_title().lower):
results.add(str(book))
return "".join(results)