Python (34) – 對List of object進行排序

先定義person

class person:
  name=''
  age=0

建立三個person,並加入list中

p1=person()
p1.name='Jennifer'
p1.age=20

p2=person()
p2.name='Tammy'
p2.age=50

p3=person()
p3.name='Amy'
p3.age=40


ls=[]
ls.append(p1)
ls.append(p2)
ls.append(p3)
先印看看未排序前的情況
p3
for x in range(0, len(ls), 1):
  print(ls[x].name + ', ' + str(ls[x].age))
想用name排序,所以我們來定義一下方法
def takeName(element):
    return element.name
定義完之後就可以直接排序
ls.sort(key=takeName)
結果:
p4
改用age排序,再定義一個方法

def takeAge(element):
    return element.age
這次改用age且由年紀大的 -> 小的
ls.sort(key=takeAge, reverse=True)
結果:
p5

發表留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料