如何按属性值对对象的字典排序? [英] How to sort dictionaries of objects by attribute value?

查看:78
本文介绍了如何按属性值对对象的字典排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想以一种属性排序的方式遍历对象字典

I would like to iterate over a dictionary of objects in an attribute sorted way

import operator

class Student:
    def __init__(self, name, grade, age):
        self.name = name
        self.grade = grade
        self.age = age


studi1 = Student('john', 'A', 15)
studi2 = Student('dave', 'B', 10)
studi3 = Student('jane', 'B', 12)

student_Dict = {}
student_Dict[studi1.name] = studi1
student_Dict[studi2.name] = studi2
student_Dict[studi3.name] = studi3

for key in (sorted(student_Dict, key=operator.attrgetter('age'))):
    print(key)

这给了我错误消息:AttributeError: 'str' object has no attribute 'age'

推荐答案

for student in (sorted(student_Dict.values(), key=operator.attrgetter('age'))):
    print(student.name)

这篇关于如何按属性值对对象的字典排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆