Python список словарей - поиск дубликатов, но только по некоторым ключам, не все - PullRequest
0 голосов
/ 08 марта 2020

У меня есть список словарей, подобных этому:

orig_list = [{'key1': 'val1', 'key2': 'val2', 'key3': 'val3', 'key4': 'val4'},
{'key1': 'val1', 'key2': 'val2', 'key3': 'val5', 'key4': 'val6'},
{'key1': 'val1', 'key2': 'val7', 'key3': 'val3', 'key4': 'val4'}]

Что я хочу сделать, это удалить элементы списка (например, 2-й элемент в исходном списке), где некоторые определенные ключи (в примере key1 и key2) имеют одинаковые значения и получают уточненный список, подобный следующему, где был удален 2-й элемент orig_list:

refined_list =[{{'key1': 'val1', 'key2': 'val2', 'key3': 'val3', 'key4': 'val4'},
{'key1': 'val1', 'key2': 'val7', 'key3': 'val3', 'key4': 'val4'}]

Другими словами, я не хочу удалять дубликаты, которые абсолютно идентичны, основаны на всех ключах, а точнее, основаны только на некоторых ключах, и процесс удаления должен оставаться безразличным к другим ключам, которые не являются основанием для удаления дубликатов (например, key3 и key4 в примере).

Какой самый эффективный способ сделать это?

...