0

互いに比較してリストを作成したい 2 つのファイルがあります。各ファイルには独自のクラスがあります。本と人。これらの中で、私は異なる属性を持っています。比較したいのは、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 クラスを構築する方法と、それらを設定する方法を示します。個人コードとは何か、なぜ個人コードが本のコードと同じになるのかを説明してください。いくつかのサンプル データともう少しコードを追加すると、回答が容易になります。

2番目:他の質問を読むと、データをテキストファイルに保存し、データを直接ロードしてクエリし、変更して保存しているようです。これにより問題が発生するため、代わりに次の 2 つの行のいずれかを検討する必要があります。

  1. SQL データベースを使用します。おそらく最も簡単に開始できるのは SQLite です。これは、サーバーをセットアップする必要がなく、標準ライブラリに非常に使いやすいモジュールがあるためです。そこにデータを保存すると、長期的には簡単になります。
  2. Python オブジェクト (たとえば、Person、Book、BorrowedBook の 3 つのクラス) を使用し、プログラム内でそれらのリストを管理し、標準ライブラリのshelveを使用して、クエリ間でこれらのオブジェクトのリストを保存および取得します。

以前に SQL を使用したことがない場合は、shelve の使用がより簡単になります。書籍関連のアプリケーションに非常に適している可能性があると私が言ったときの駄洒落を許していただければ幸いです。

于 2012-05-06T22:28:50.693 に答える