Удалить словарь из списка, если два словаря имеют повторяющиеся ключи

Я до сих пор не слишком знаком с составом списков и прочим, поэтому я ценю помощь.

У меня есть список словарей, которые содержат url и число в каждом словаре, например:

data = [{'url': 'www.url1.com', 'max': '14.6'},
        {'url': 'www.url2.com', 'max': '17.8'},
        {'url': 'www.url2.com', 'max': '18.4'},
        {'url': 'www.url3.com', 'max': '15.5'}]

Я бы хотел отфильтровать все словари с дубликатом ключа url, даже если max отличается от другой повторяющейся записи.

Мой ожидаемый результат будет следующим:

data = [{'url': 'www.url1.com', 'max': '14.6'},
        {'url': 'www.url2.com', 'max': '17.8'},
        {'url': 'www.url3.com', 'max': '15.5'}]

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

Я ценю вашу помощь, спасибо!

4 голоса | спросил Canna 6 J0000006Europe/Moscow 2018, 02:47:42

4 ответа


0
Попробуйте создать словарь, затем получить его значения и преобразовать в список:Выход:
ответил U9-Forward 6 J0000006Europe/Moscow 2018, 03:15:38
0
Вот один из способов, используя ---- +: = 0 =: + ---- .Если у вас нет этой сторонней библиотеки, вы можете использовать эквивалентный рецепт ---- +: = 1 =: + ---- itertools :
ответил jpp 6 J0000006Europe/Moscow 2018, 02:52:36
0
Для метода чистого Python:
ответил ThePoetCoder 6 J0000006Europe/Moscow 2018, 03:07:22
0
Я думаю, что простая функция ниже удовлетворит ваши потребности.
ответил yimcai 6 J0000006Europe/Moscow 2018, 03:09:54

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132