0

我有两个文件要相互比较并形成一个列表。每个文件都有自己的类。书和人。在这些中,我有不同的属性。我要比较的是:person.personalcode == book.borrowed。从这里我想要一个所有借来的书的清单。我是这样开始的:

for person in person_list:
    for book in booklibrary_list:
        if person.personalcode == book.borrowed:
            person.books.append(book, person)

for person in person_list:
    if len(person.books) > 0:
        print(person.personalcode + "," + person.firstname + person.lastname + "have borrowed the following books: ")
        for book in person.books:
            print(book)

for person in person_list:
    person.books = []

但它不起作用,我错过了什么或做错了什么?

4

1 回答 1

1

发布作为答案,因为这对于评论来说太长了。

第一:改进你的问题。展示如何构建 Person 和 Book 类,以及如何填充它们。描述个人代码是什么以及个人代码为何与书籍代码相同。一些示例数据和更多代码将使这个问题更容易回答。

第二:阅读您的其他问题,您似乎将数据存储在文本文件中,直接加载和查询,修改和保存数据。这将导致您遇到问题,相反,您应该考虑采用以下两条线之一:

  1. 使用 SQL 数据库,可能最容易开始使用的是 SQLite,因为它不需要设置服务器,并且标准库中有一个非常易于使用的模块。将您的数据存储在那里,从长远来看,您会发现它更容易。
  2. 使用 Python 对象(例如三个类:Person、Book 和 BorrowedBook),在程序中管理它们的列表,并使用标准库中的shelve在查询之间存储和检索这些对象列表。

如果你以前没有使用过 SQL,使用 shelve 会更容易,我希望你能原谅我说它可能非常适合与书籍相关的应用程序时的双关语!

于 2012-05-06T22:28:50.693 回答