- 首先自定义一个类,然后在__init__方法中写入你需要的属性
- 比如我的Book类,有书名(book_name)和书的价格(book_price)
这里我希望按照书的价格来排序
- 核心是使用sorted方法
sorted(book_list, key=lambda x:x.book_price, reverse=False)
- reverse是反转的意思
- reverse=False 表示升序(1 2 3)
- reverse=True 表示降序(3 2 1)
代码
class Book(object):
def __init__(self, book_name, book_price):
self.book_name = book_name
self.book_price = book_price
def __str__(self):
return "{name:<15}\t{price:<10}".format(name=self.book_name, price=self.book_price)
def show_book_list(book_list):
for book in book_list:
print(book)
print("\n=====")
b1 = Book("百年孤独", 59)
b2 = Book("云边有个小卖部", 49)
b3 = Book("高等数学", 19.9)
book_list = [b1, b2, b3]
show_book_list(book_list)
book_list_sort = sorted(book_list, key=lambda x:x.book_price, reverse=False)
show_book_list(book_list_sort)
"""
out:
百年孤独 59
云边有个小卖部 49
高等数学 19.9
=====
高等数学 19.9
云边有个小卖部 49
百年孤独 59
=====
"""