工作中經常需要用到排序,單純的數字排序還好說,但是有時候要按照物件的某一屬性對物件進行排序,這時候會稍微麻煩點,不過 python 中有現成的方法解決這種窘境。
1.呼叫 list 排序方法
不 bb,直接上**,總共三個例子
1.普通列表
2.複雜列表
3.物件排序
class person(object):
def __init__(self, name, age):
self.name = name
self.age = age
if __name__ == '__main__':
a = (0, 8, 2, 6, 3)
b = [('a', 12), ('b', 12), ('c', 1), ('d', 13), ('e', 2)]
person_list = [person('q', 2), person('w', 1), person('e', 3), person('r', 6)]
a.sort(cmp=none, key=none, reverse=true) # reverse 引數為 true 時逆向排序
print a
b.sort(key=lambda x: x[1])
print b
person_list.sort(key=lambda x: x.age)
for i in person_list:
print i.age
結果:
[8, 6, 3, 2, 0]
[('c', 1), ('e', 2), ('a', 12), ('b', 12), ('d', 13)]12
36
2.呼叫 sorted 方法
和上面一樣的例子,其實 sorted 方法和 list.sort 使用方法幾乎一樣
class person(object):
def __init__(self, name, age):
self.name = name
self.age = age
if __name__ == '__main__':
a = [0, 8, 2, 6, 3]
b = [('a', 12), ('b', 12), ('c', 1), ('d', 13), ('e', 2)]
person_list = [person('q', 2), person('w', 1), person('e', 3), person('r', 6)]
print sorted(a)
print sorted(b, key=lambda x: x[1])
m = sorted(person_list, key=lambda x: x.age, reverse=true)
for i in m:
print i.age
結果:
[0, 2, 3, 6, 8]
[('c', 1), ('e', 2), ('a', 12), ('b', 12), ('d', 13)]63
21
3.結語
非常複雜的排序就需要自己寫了,一般上面那個方法用一下就基本滿足需求了。
LinkedList中將物件按照某一屬性排序
例如,鍊錶 treelist 宣告如下 linkedlisttreelist new linkedlist 其中 treenode 是自己定義的乙個類,類中有乙個 int 型別的 value 屬性,若要以 treenode 中的 value 屬性排序,可以如下實現 1 新增乙個類,實現 compar...
JS刪除物件中的某一屬性
js如何刪除物件中的某一屬性 var obj delete obj.name true typeof obj.name undefined通過delete操作符,可以實現對物件屬性的刪除操作,返回值是布林 可以刪除其他東西嗎 1.變數 var name zs 已宣告的變數 delete name f...
根據物件陣列的某一屬性排序
今天做需求時候靈光一閃,想到了乙個很簡單的給物件陣列排序的方法,敲黑板 此排序非普通大眾排序 需求描述 有乙個物件陣列,大概長這樣 var bardata 渲染頁面時候呢,我們需要按照特定的順序來取資料並渲染。假如是按照name屬性來排序,並且順序為 掃碼e貸,誠e貸,稅源e貸,超值e貸,菸草e貸 ...