Я предлагаю вам немного улучшить свой пример, чтобы:
- он проверял числовые сравнения
- он имел непоследовательные "дублирующие" элементы
Я бы создал маркер dict с id в качестве ключа и sublist в качестве значения.Зацикливание на входе и перезапись вхождения dict, если значение выше (не забудьте привести к целому числу)
my_list = [
{'score': '192', 'imageId': '6184de26-e11d-4a7e-9c44-a1af8012d8d0', 'label': 'Door'},
{'score': '61', 'imageId': 'fffffe26-e11d-4a7e-9c44-a1af8012d8d0', 'label': 'misc'},
{'score': '761', 'imageId': '6184de26-e11d-4a7e-9c44-a1af8012d8d0', 'label': 'Sliding Door'},
{'score': '45', 'imageId': '6184de26-e11d-4a7e-9c44-a1af8012d8d0', 'label': 'Door'},
]
import collections
d = dict()
for subdict in my_list:
score = int(subdict['score'])
image_id = subdict['imageId']
if image_id not in d or int(d[image_id]['score']) < score:
d[image_id] = subdict
new_list = list(d.values())
результат (порядок может измениться при использовании словаря):
[{'imageId': 'fffffe26-e11d-4a7e-9c44-a1af8012d8d0',
'label': 'misc',
'score': '61'},
{'imageId': '6184de26-e11d-4a7e-9c44-a1af8012d8d0',
'label': 'Sliding Door',
'score': '761'}]