List python中的字母排序

List python中的字母排序,list,indexing,namedtuple,alphabetical-sort,List,Indexing,Namedtuple,Alphabetical Sort,编写一系列语句,按字母顺序打印BSI中每本书的标题,每行一个;在不更改BSI原始顺序的情况下执行此操作。 我的代码: 我的代码输出的是书名,但不是字母顺序。我想出来了,我的代码是正确的,我只是认为这不是因为我的一个字符串开始没有大写,当使用sort()或sorted()时,它也按大写进行排序 from collections import namedtuple Book = namedtuple('Book', 'author title genre year price instock')

编写一系列语句,按字母顺序打印BSI中每本书的标题,每行一个;在不更改BSI原始顺序的情况下执行此操作。 我的代码:


我的代码输出的是书名,但不是字母顺序。

我想出来了,我的代码是正确的,我只是认为这不是因为我的一个字符串开始没有大写,当使用sort()或sorted()时,它也按大写进行排序

 from collections import namedtuple
 Book = namedtuple('Book', 'author title genre year price instock')

baby = Book('Tyler Hawkin','ABC','education',2009, 20.00, 75) 
child = Book('Miss Hanigan','Jannie','adventure',1900, 26.00, 51)
preteen = Book('Leila Star','My first crush','comedy',2013, 8.89, 11) 
teen = Book('John Green', 'Fault in our Stars', 'romance',2006, 17.00,0)
adult = Book('Shakespeare', 'Romeo', 'Drama', 1610, 5.00, 99)
elderly = Book('Janett Smith','how to be young again','life',1995, 13.00, 3) 
BSI = [baby,child,preteen,teen,adult,elderly]

def book_title(book:Book)->str:
    return book.title

alpha_BSI = sorted(BSI, key=book_title)
    for i in range(len(BSI)):
        print(alpha_BSI[i].title)