我曾经合并和排序了两个具有“创建”属性的对象列表,这些属性是一个日期时间。
我这样说,这很有效:
all_events = sorted(
chain(list1, list2),
key=attrgetter('created'))
现在,我想在排序中添加第三个列表。问题是第三个列表中的对象的datetime属性未命名为“created”。
在这种情况下,您如何对3个列表进行排序?
谢谢。
答案 0 :(得分:3)
使用lambda
获取具有后备的属性:
all_events = sorted(
chain(list1, list2, list3),
key=lambda o: getattr(o, 'created', getattr(o, 'otherattribute', None))
这会尝试获取任一属性,而不是'created'
。