所以我对Python很陌生,在介绍CS类时遇到了一个问题。问题是创建一个包含2000年之前创建的所有标题和2000年之后创建的所有标题的列表。到目前为止,我得到的是:
from collections import namedtuple
Book = namedtuple("Book", "author title genre year price instock")
book_1 = Book("Bob", "Harry Potter", "Fantasy", 2000, 6.00, 1000)
book_2 = Book("Martha", "Hunger Games", "Psychological", 1998, 10.00, 2000)
book_3 = Book("Sam", "The Quest", "Adventure", 2010, 8.00, 5000)
book_4 = Book("Damien", "Pokemon", "Sci-Fi", 1990, 12.00, 10000)
book_5 = Book("Voldemort", "Maze Runner", "Adventure", 2015, 10.00, 50)
book_6 = Book("Anonymous", "Horror Stories Before Bed", "Horror", 2017, 18.00,0)
book_store_inventory = [book_1, book_2, book_3, book_4, book_5, book_6]
before_2000 = []
after_2000 = []
for i in book_store_inventory:
if book_store_inventory[i].year <= 2000:
before_2000.append(i.title)
else:
after_2000.append(i.title)
从这一点我应该改变什么?我一直收到错误消息,说列表索引必须是整数或切片,而不是Book。谢谢!在
由于您有太多book对象,因此创建一个新类来存储图书,并根据特定条件创建
property
修饰符来访问库数据是有意义的:输出:
^{pr2}$你不需要索引:
相关问题 更多 >
编程相关推荐