班級?男:
def?__init__(自己,姓名,id):
self.name=name
self.id=id
@屬性
def?關鍵(自我):
回歸?自我名
def?len(self):
回歸?len(自己的名字)
def?__str__(self):
回歸?{{\'name\':\'{0}\ ',\'id\':{1}} '?\
。格式(self.name,self.id)?
__repr__?=?__str__
s?=?[m('zzzz ',1),m('aaa ',4)]
l?=?[('源',?s),
]
#?直接屬性排序
l.append(('by?名稱',?已排序(s,key=lambda?x:?x.name)))
l.append(('by?id ',?已排序(s,key=lambda?x:?x.id)))
#?屬性函數排序
l.append(('by?鍵',?已排序(s,key=lambda?x:?x.key)))
#?功能分類
l.append(('by?len()',?已排序(s,key=lambda?x:?x.len())))
為了什麽?e?在?l:
打印(e[0])
Print(e[1])這是輸出結果:
來源
[{'name':'zzzz ',' id':1},?{ '姓名':' aaa ',' id':4}]
被誰?名字
[{'name':'aaa ',' id':4},?{ '姓名':' zzzz ',' id':1}]
被誰?身份證明(identification)
[{'name':'zzzz ',' id':1},?{ '姓名':' aaa ',' id':4}]
被誰?鍵
[{'name':'aaa ',' id':4},?{ '姓名':' zzzz ',' id':1}]
被誰?len()
[{'name':'aaa ',' id':4},?{'name':'zzzz ',' id':1}]以上四種用法都可以,name[key]的形式也可以。
排序參數鍵,它是壹個函數,簡單點的話可以直接用lambda,復雜點的話可以用壹個參數定義為壹個函數,比如:
def?已排序_其他(項目):
如果?hasattr(item,?姓名'):
回歸?項目.名稱
否則:
回歸?沒有人
l.append(('by?其他?func ',?已排序(s,key=sorted_other)))