python cookbook 1.14对不原生支持比较操作的对象排序,比如对同一个类的实例排序

#1.14对不原生支持比较操作的对象排序,比如对同一个类的实例排序
#若想使用User_id属性对类的实例排序
class User:
    def __init__(self,user_id):
        self.user_id = user_id
    def __repr__(self):
        return 'User({})'.format(self.user_id)
    
users = [User(23),User(2),User(99)]
print(users)
usrsort=sorted(users,key=lambda u:u.user_id)   #可以通过sorted函数中的key参数指定
print(usrsort)

from operator import attrgetter
sortusr = sorted(users,key=attrgetter('user_id'))   #可以使用这个函数.通常比lambda快一些
print(sortusr)

#by_name = sorted(users,key=attrgetter('last_name','first_name'))   #按照两个参数进行排序
print(min(users,key=attrgetter('user_id')))   #也可以用在min,max这样的函数
print(max(users,key=attrgetter('user_id')))

猜你喜欢

转载自blog.csdn.net/qq_21997625/article/details/86485415