列表或单独列表?

时间:2014-04-07 15:18:34

标签: python

哪个更好?

books = {'titles': [], 'descriptions': [], 'pages': []}

book_titles = []
book_descriptions = []
book_pages = []

我只是好奇,有什么不同吗?

2 个答案:

答案 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