-1

本のタイトルを選択して、そのタイトルのアルファベット順に新しいリストを作成したい

Book = namedtuple('Book', 'author title genre year price instock')
             BSI = [Book('JK Rowling', 'Harry Potter', 'Fiction', 2009, 12.50, 10),
Book('Stephanie Meyer', 'Twilight', 'Fiction', 2007, 9.99, 1),
Book('Walter Isaacson', 'Steve Jobs', 'Technology', 2011, 35.00, 200),
Book('Albert Camus', 'The Stranger', 'Fiction', 1980, 15.99, 62),
Book('Shakespeare', 'Romeo and Juliet', 'Tragedy', 1597, 11.00, 13),
Book('Sake Jager', 'Language Teaching and Language Technology', 'Technology', 1998, 87.00, 27)]

for i in BSI: print(sorted(i.title))

4

1 に答える 1

0

あなたはうまく使いnamedtupleます。

の使い方sortedが間違っています。引数を指定してコレクション全体をソートする必要がありkeyます。

sorted(BSI,key=lambda x:x.title)
Out[39]: 
[Book(author='JK Rowling', title='Harry Potter', genre='Fiction', year=2009, price=12.5, instock=10),
 Book(author='Sake Jager', title='Language Teaching and Language Technology', genre='Technology', year=1998, price=87.0, instock=27),
 Book(author='Shakespeare', title='Romeo and Juliet', genre='Tragedy', year=1597, price=11.0, instock=13),
 Book(author='Walter Isaacson', title='Steve Jobs', genre='Technology', year=2011, price=35.0, instock=200),
 Book(author='Albert Camus', title='The Stranger', genre='Fiction', year=1980, price=15.99, instock=62),
 Book(author='Stephanie Meyer', title='Twilight', genre='Fiction', year=2007, price=9.99, instock=1)]
于 2013-10-17T05:23:21.217 に答える