# 使用attrgetter函数对对象排序
# attrgetter处理对象,itemgetter处理序列 from operator import attrgetter class user():
def __init__(self, name, age):
self.name = name
self.age = age def __repr__(self):
'''定义该对象需要输出时的字符串格式'''
return self.name + ":" + str(self.age) users = [
user("Mike", 28),
user("Lily", 25),
user("Tom", 27),
user("Ben", 23)
] print('排序前:')
for user in users:
print(user) print('-' * 20)
print('排序后:') for u in sorted(users, key=attrgetter("name")):
'''根据对象名称排序-key(u)'''
print(u) for u in sorted(users, key=attrgetter("name", "age")):
'''多键值排序'''
print(u)
运行结果:
排序前:
Mike:28
Lily:25
Tom:27
Ben:23
--------------------
排序后:
Ben:23
Lily:25
Mike:28
Tom:27