Один из способов сделать это - изменить структуру dict.
my_list = [
{"id": "UU7t", "updated_at": "2020-01-06_16-40-00", "summary": "Renewed"},
{"id": "yT8h", "updated_at": "2020-01-07_18-24-22", "summary": "Renewed"},
{"id": "i8Po", "updated_at": "2020-01-08_13-16-36", "summary": "Renewed"},
{"id": "yT8h", "updated_at": "2020-01-13_18-24-05", "summary": "Deleted"},
{"id": "7uYg", "updated_at": "2020-01-18_23-37-19", "summary": "Transferred"},
]
def getNewUpdated(myList):
newList = {}
for element in myList:
if (element["id"] not in newList):
newList[element["id"]] = element
elif (element["updated_at"] >= newList[element["id"]]["updated_at"]):
newList[element["id"]] = element
return newList
print(getNewUpdated(my_list))
Здесь мы реструктурируем dict, так что «id» - это ключ, а все элементы - «значения», и затем выполните итерации по предоставленному вами списку, чтобы проверить, существует ли уже «id» в newList, если он существует, затем просто обновите ту же запись (при условии, что время обновления новое) или добавьте новую запись.
Вывод это что-то вроде этого:
{
'i8Po': {'summary': 'Renewed', 'id': 'i8Po', 'updated_at': '2020-01-08_13-16-36'},
'yT8h': {'summary': 'Deleted', 'id': 'yT8h', 'updated_at': '2020-01-13_18-24-05'},
'7uYg': {'summary': 'Transferred', 'id': '7uYg', 'updated_at': '2020-01-18_23-37-19'},
'UU7t': {'summary': 'Renewed', 'id': 'UU7t', 'updated_at': '2020-01-06_16-40-00'}
}