Python论坛  - 讨论区

标题:请教下value是一个类的字典怎么排序?

2012年03月13日 星期二 09:51

class Teacher:
    def __init__(self):
        self.age="";
        self.name=u"";
        self.salary="";

 data = dict();
    data["t"]=Teacher();
    data["t"].age=33;
    data["t"].name="liu";
    data["t"].salary="4000";
   
    data["s"]=Teacher();
    data["s"].age=11;
    data["s"].name="liang";
    data["s"].salary="85";
   
    data["d"]=Teacher();
    data["d"].age=20;
    data["d"].name="li";
    data["d"].salary="85";

for key in data.keys():
        print key             #打印s,t,d

我想按age排序或者按赋值的顺序排序,请问下要怎么实现?初学者,请各位前辈赐教,谢谢

 

2012年03月13日 星期二 10:03

可以使用内置函数sorted排序。

import operator

class Teacher:
    def __init__(self):
        self.age = "";
        self.name = u"";
        self.salary = "";

data = dict();
data["t"] = Teacher();
data["t"].age = 33;
data["t"].name = "liu";
data["t"].salary = "4000";
 
data["s"] = Teacher();
data["s"].age = 11;
data["s"].name = "liang";
data["s"].salary = "85";
    
data["d"] = Teacher();
data["d"].age = 20;
data["d"].name = "li";
data["d"].salary = "85";


result = sorted(data.values(), key = operator.attrgetter('age'))
for teacher in result:
    print "-------------------"
    print "name:", teacher.name
    print "age:", teacher.age
    print "salary:", teacher.salary

2012年03月13日 星期二 10:14

实现了,谢谢^^。先处理任务,回头再深入看下

2012年03月14日 星期三 00:21

def sortDic(Dict):return sorted(Dict.items(),key=lambda a:a[1])

2012年03月23日 星期五 22:57

sorted(data.values(),key=lambda x:x.age)

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号