2012-05-06 2 views
0

저는 서로 비교하고 목록을 구성하고 싶은 두 개의 파일이 있습니다. 각 파일에는 고유 한 클래스가 있습니다. 책과 사람. 이것들에는 서로 다른 속성이 있습니다. 내가 비교하기를 원하는 것들은 : person.personalcode == book.borrowed. 이것에서 나는 빌린 모든 책의 목록을 원합니다. I는 다음과 같이 시작 :두 파일을 비교하고 목록을 만듭니다.

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 클래스를 구성하는 방법과 클래스를 채우는 방법을 보여줍니다. 개인 코드가 무엇이며 어떻게 개인 코드가 책 코드와 같은지 설명하십시오. 일부 샘플 데이터와 조금 더 많은 코드를 사용하면 쉽게 대답 할 수 있습니다.

두 번째로 : other question을 읽고, 데이터를 텍스트 파일에 저장하고 데이터를로드하고 쿼리하고 수정하고 저장하는 것처럼 보입니다. 이 문제에 당신을 이끌 것 대신 두 개의 라인 중 하나 추락 고려해야한다 : 그것은 서버를 설정하고 거기에 할 필요가 없습니다으로

  1. 는 SQL 데이터베이스를 사용이 가능하게 시작하는 가장 쉬운 SQLite는있다 module in the standard library that is very easy to use입니다. 데이터를 거기에 저장하면 장기적으로 쉽게 찾을 수 있습니다.
  2. Python 개체 (예 : Person, Book 및 BorrowedBook의 세 클래스)를 사용하고 프로그램 내에서 목록을 관리하고 표준 라이브러리의 shelve을 사용하여 이러한 개체 목록을 쿼리간에 저장하고 검색합니다.

이전에 SQL을 사용하지 않았 으면 shelve를 사용하는 것이 더 쉬울 것이므로 책 관련 응용 프로그램에 매우 적합하다고 말하면이 말을 용서할 수 있기를 바랍니다.

+0

+1 선반에 대한 이론적 근거. –

관련 문제