Python搜索书籍记录数组,匹配目标关键词后打印对应完整列表
Python书籍搜索功能实现代码
你可以直接使用以下修改后的完整代码实现需求:
# 接收用户输入的搜索关键词,去除首尾空白字符 search_key = input('Enter a book title: ').strip() def read_book(): booksdata = [] # 使用with语法自动管理文件句柄,无需手动关闭文件 with open('books2.txt', 'r', encoding='utf-8') as f: for record in f: cleanrecord = record.strip() # 跳过文件中的空行 if not cleanrecord: continue books = cleanrecord.split(',') booksdata.append(books) return booksdata # 接收读取到的全部书籍数据 all_books = read_book() # 筛选匹配的书籍,默认仅匹配书名,若需全字段匹配可将判断条件改为 search_key in str(book) matched_books = [book for book in all_books if search_key in book[1]] # 打印所有匹配结果 for book in matched_books: print(book)
代码修改说明
- 新增了返回值接收逻辑:将
read_book()的返回结果存入all_books变量,避免读取到的数据直接丢失 - 优化了文件读取逻辑:使用
with open语法自动管理文件关闭,避免资源泄漏,同时增加了空行跳过逻辑,兼容存在空行的文件场景 - 新增了关键词匹配逻辑:通过列表推导式遍历所有书籍数据,筛选出书名包含关键词的记录,若需要匹配分类、作者等其他字段,修改判断条件即可
- 对用户输入做了首尾空白去除处理,避免输入误带空格导致匹配失败
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

