Я получаю список из более 100000 элементов из базы данных, некоторые из которых дублируются на основе уникального идентификатора.
Возвращенные данные аналогичны приведенным ниже:
my_list = [
{"id_str": "foo", "field1": "foobar", "field2":...},
{"id_str": "foo", "field2": "foobaz", "field2":...},
{"id_str": "bar", "field1": "bazfoo", "field2":...},
{"id_str": "baz", "field1": "barbaz", "field2":...},
...
]
Как видите, весь словарь в списке не обязательно дублируется в другой словарь, в то время как id_str
дублируется.
В настоящее время я использую простой метод для исключения элементов, имеющих одинаковое значение id_str
:
collected_ids = []
cleaned_list = []
for item in my_list:
if(item["id_str"] not in collected_ids):
collected_ids.append(item["id_str"])
cleaned_list.append(item)
Однако для сотен тысяч элементов в списке это занимает довольно много времени.Есть ли более эффективный способ сделать это?