2012-05-06 19 views
0

私はお互いを比較してリストを作成する2つのファイルがあります。各ファイルにはそれぞれ独自のクラスがあります。本と人。これらの中で、私は異なる属性を持っています。私が比較したいのは、person.personalcode == book.borrowedです。これから私はすべての借用した本のリストが必要です。私はこのように始まった:2つのファイルを比較してリストを作成

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 = [] 

しかし、それは動作しません、私は間違って何かやった?

+0

'person_list'はファイルオブジェクトですか?そうであれば、 'person'は文字列なので、' personalcode'属性はありません。 –

+9

どのように動作しないのか投稿してください。エラーがある場合は、投稿してください。出力が期待どおりでない場合は、あなたが持っているものと望むものを投稿してください。 – Daenyth

+0

personは私のクラスで、personalcodeは属性です。 – user1370721

答えて

1

コメントは長すぎますので、返信として投稿してください。

まず、質問を改善してください。 PersonクラスとBookクラスをどのように構築するか、それらをどのように埋め込むかを示します。パーソナルコードが何であるか、そしてパーソナルコードがどのようにして本コードと同じになるかを記述します。いくつかのサンプルデータともう少しコードがあれば、これは簡単に答えることができます。

2番目:あなたのother questionを読んでいると、データをテキストファイルに保存していて、データの読み込みと照会、変更、保存を行っているようです。これが問題にあなたを導くでしょうし、代わりに次の2つのラインの一つ下がって検討する必要があります。それは、サーバーがセットアップされ、そこにする必要はありませんよう

  1. は、SQLデータベースを使用しますが、おそらくで開始する最も簡単なSQLiteのですmodule in the standard library that is very easy to useです。あなたのデータをそこに保存すると、長期的に見ればさらに簡単になります。
  2. Pythonオブジェクト(Person、Book、BorrowedBookの3つのクラスなど)を使用し、プログラム内のリストを管理し、標準ライブラリのshelveを使用してこれらのオブジェクトのリストをクエリ間で格納および取得します。

以前にSQLを使用していなかった場合は、shelveの使用が簡単になりました。ブック関連のアプリケーションには非常に適していると思われる場合は、許してください。

+0

+1は棚の根拠です。 –

関連する問題