按属性自定义排序

时间:2016-06-02 04:17:10

标签: python dictionary

我在Python中有一个用于排序的方法,它采用参数alarm.__dict__['severity']。如何以其他方式访问严重性参数?

我的排序功能是:

sorted(alarm_list, key=lambda alarm: alarm.__dict__['severity'])

我可以通过其他方式获取严重性参数吗?

1 个答案:

答案 0 :(得分:1)

您可以使用defaultdict代替__dict__

sorted(alarm_list, key=lambda alarm: getattr(alarm, 'severity'))

然而,看起来这样也可以起作用:

sorted(alarm_list, key=lambda alarm: alarm.severity)

这两个示例均假设alarm始终具有severity