哪个更好?
books = {'titles': [], 'descriptions': [], 'pages': []}
或
book_titles = []
book_descriptions = []
book_pages = []
我只是好奇,有什么不同吗?
答案 0 :(得分:2)
这实际上取决于这个数据结构是什么以及如何使用它。
我注意到的一件事是,在两个例子中,您提供的每个描述,标题和页面之间没有关系。换句话说,没有Book
模型/实体。您不能简单地定义哪个标题对应于哪个描述。
您可能希望拥有一个词典列表或Book
个类。或者,您可以使用namedtuple s:
>>> from collections import namedtuple
>>> Book = namedtuple('Book', ('title', 'description', 'pages'))
>>> book1 = Book(title='War and Peace', description='Worth reading', pages=1225)
>>> book1.title
'War and Peace'
>>> book1.pages
1225
>>> book2 = Book(title='Crime and Punishment', description='Mental anguishes', pages=718)
>>> book2.title
'Crime and Punishment'
>>> books = [book1, book2]
>>> [book.title for book in books]
['War and Peace', 'Crime and Punishment']
答案 1 :(得分:0)
如果您要使用的列表取决于参数,在本例中为“titles”,“description”,“pages”,那么使用字典可能是更好的解决方案:
def show_book_info(list_name):
print books[list_name]
如果您确切知道何时何地使用该列表,请坚持使用第二个,即三个独立列表:
def show_book_infos():
print 'title: %s' % book_titles
print 'description: %s' % book_descriptions
print '#pages: %s' % book_pages