python之attrgetter函數對對象排序
阿新 • • 發佈:2017-08-06
處理對象 pri 名稱 self. import str rep att log
1 # 使用attrgetter函數對對象排序 3 # attrgetter處理對象,itemgetter處理序列 4 5 from operator import attrgetter 6 7 8 class user(): 9 def __init__(self, name, age): 10 self.name = name 11 self.age = age 12 13 def __repr__(self): 14 ‘‘‘定義該對象需要輸出時的字符串格式‘‘‘ 15 return self.name + ":" + str(self.age) 16 17 18 users = [ 19 user("Mike", 28), 20 user("Lily", 25), 21 user("Tom", 27), 22 user("Ben", 23) 23 ] 24 25 print(‘排序前:‘) 26 for user in users: 27 print(user) 28 29 print(‘-‘ * 20) 30 print(‘排序後:‘) 31 32 for u in sorted(users, key=attrgetter("name")): 33 ‘‘‘根據對象名稱排序-key(u)‘‘‘ 34 print(u) 35 36 for u in sorted(users, key=attrgetter("name", "age")): 37 ‘‘‘多鍵值排序‘‘‘ 38 print(u)
運行結果:
1 排序前: 2 Mike:28 3 Lily:25 4 Tom:27 5 Ben:23 6 -------------------- 7 排序後: 8 Ben:23 9 Lily:25 10 Mike:28 11 Tom:27
python之attrgetter函數對對象排序