我有一个对象列表,我想要"压缩"根据匹配属性(id
)将对象列入较小的对象列表。
class Event:
def __init__(self, id, type, flag):
self.id = id
self.type = type
self.flag = flag
eventlist = [
Event("12345", "A", 1),
Event("12345", "B", None),
Event("67890", "A", 0),
Event("67890", "B", None)]
如何获得看起来像这样的新列表?它应该优先于None
定义的值,而忽略属性type
。
compressed = [
Event("12345", 1),
Event("67890", 0)]
编辑:更好的问题here。这可以删除......
答案 0 :(得分:1)
试一试。它应该工作。
eventDict={}
for e in eventlist:
eventdict[e.id]=e.flag if e.flag is not None else eventDict[e.id]
compressed = [Event(k, None, v) for k,v in eventdict.items()]