如何获得namedtuple属性的排序列表

问题描述 投票:0回答:1

我一直迷失于为什么总是出错。我正在尝试使用sorted()打印按字母顺序列出的书籍的标题。

我一直收到此错误:

sorted(BSI, key=list(Book))
TypeError: 'type' object is not iterable

然后这是代码

from collections import namedtuple

Book = namedtuple('Book', 'author title genre year price instock')
BSI = [Book("J.K. Rowling", "Harry Potter", "Fantasy", "2005", 12.00, "34"),
       Book("Dr. Seuss", "Green Eggs and Ham", "Children's", "2000", 8.00, "12"),
       Book("Margaret Mitchell", "Gone with the Wind", "Fiction", "1980", 9.00, "30"),
       Book("John Green", "The Fault in our Stars", "Fiction", "2010", 13.00, "23"),
       Book("Stephanie Meyer", "Twilight", "Fantasy", "2008", 15.00, "8"),
       Book("Suzanne Collins", "The Hunger Games", "Fantasy", "2005", 17.00, "18")]

for x in BSI:
    print(x.title)

y = BSI
for x in BSI:
    sorted(BSI, key=list(Book))

我一直迷失于为什么总是出错。我正在尝试使用sorted()按字母顺序列出书籍的标题。我不断收到此错误:sorted(BSI,key = list(Book))...

python sorting attributes namedtuple
1个回答
1
投票

问题出在list(Book)上。书是一种。以下可能是您想要的。

© www.soinside.com 2019 - 2024. All rights reserved.