使用具有不同名称的键对对象的Python列表进行排序

时间:2014-05-31 23:23:00

标签: python django sorting

我曾经合并和排序了两个具有“创建”属性的对象列表,这些属性是一个日期时间。

我这样说,这很有效:

all_events = sorted(
    chain(list1, list2),
        key=attrgetter('created'))

现在,我想在排序中添加第三个列表。问题是第三个列表中的对象的datetime属性未命名为“created”。

在这种情况下,您如何对3个列表进行排序?

谢谢。

1 个答案:

答案 0 :(得分:3)

使用lambda获取具有后备的属性:

all_events = sorted(
    chain(list1, list2, list3),
    key=lambda o: getattr(o, 'created', getattr(o, 'otherattribute', None))

这会尝试获取任一属性,而不是'created'

相关问题