Удалить дубликаты из списка словарей - PullRequest
6 голосов
/ 23 января 2012

У меня есть следующий список словарей:

d = [
{ 'name': 'test', 'regions': [{'country': 'UK'}] },
{ 'name': 'test', 'regions': [{'country': 'US'}, {'country': 'DE'}] },
{ 'name': 'test 1', 'regions': [{'country': 'UK'}], 'clients': ['1', '2', '5'] },
{ 'name': 'test', 'regions': [{'country': 'UK'}] },
]

Какой самый простой способ удалить записи из списка, которые являются дубликатами?

Я видел решения, которые работают, но только еслиэлемент не имеет вложенных диктов или списков

Ответы [ 2 ]

16 голосов
/ 23 января 2012

Как насчет этого:

new_d = []
for x in d:
    if x not in new_d:
        new_d.append(x)
0 голосов
/ 23 января 2012

Для простого, как и для "простого в реализации", вопрос в этом вопросе кажется довольно компактным.

Не похоже, что он также очень эффективен с точки зрения производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...