Python,从元组列表中删除重复项

ale*_*sel 4 python items list

我有以下列表:

[('mail', 167, datetime.datetime(2010, 9, 29)) , 
 ('name', 1317, datetime.datetime(2011, 12, 12)), 
 ('mail', 1045, datetime.datetime(2010, 8, 13)), 
 ('name', 3, datetime.datetime(2011, 11, 3))]
Run Code Online (Sandbox Code Playgroud)

并且我想从列表中删除项目,其中元组中的第一项是重合的,其中日期不是最新的.换句话说,我需要得到这个:

[('mail', 167, datetime.datetime(2010, 9, 29)) , 
 ('name', 1317, datetime.datetime(2011, 12, 12))]
Run Code Online (Sandbox Code Playgroud)

Bjö*_*lex 15

到目前为止,您可以使用字典存储给定键的最高值:

temp = {}
for key, number, date in input_list:
    if key not in temp: # we see this key for the first time
        temp[key] = (key, number, date)
    else:
        if temp[key][2] < date: # the new date is larger than the old one
            temp[key] = (key, number, date)
result = temp.values()
Run Code Online (Sandbox Code Playgroud)