如果'books.txt'
文件包含這些條目:
Title1|Joe Blow
Title2|Jane Doe
Title Number Three|Henry Longwords
你可以建立一個字典,從它那有書名爲鍵和寫作者(S)的列表。這是我我說的:
from pprint import pprint
def load_library(filename):
authors_by_book = {}
with open(filename) as file:
for line in file:
author, title = line.strip().split('|')
authors_by_book.setdefault(author, []).append(title)
return authors_by_book
if __name__=='__main__':
authors_by_book = load_library('books.txt')
pprint(authors_by_book)
print()
print('Author(s) of {}: {}'.format('Title2', authors_by_book['Title2']))
輸出:
{'Title Number Three': ['Henry Longwords'],
'Title1': ['Joe Blow'],
'Title2': ['Jane Doe']}
Author(s) of Title2: ['Jane Doe']
原因與每個鍵關聯的值是一個列表,是因爲一本書可以有多個作者。這可能發生,如果相同的標題在'bookts.txt'
文件出現了不止一次,像這樣:
Deep Throat|Bob Woodward
Deep Throat|Carl Bernstein
您可以修改代碼以支持其在單個條目中列出多個作者,如:
Deep Throat|Bob Woodward|Carl Bernstein
如果你需要/想要。
將字典映射到作者作爲解決方案就足夠了? –