當前位置:成語大全網 - 新華字典 - 在python中,找到了自定義復雜數據結構和快速排序的方法。

在python中,找到了自定義復雜數據結構和快速排序的方法。

應該是妳用錯了排序方式。它可以對name.key的格式進行排序

班級?男:

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)))