Проверьте, существует ли значение в списке словарей?

У меня есть список словарей Python:

a = [ {'main_color': 'red', 'second_color':'blue'}, {'main_color': 'yellow', 'second_color':'green'}, {'main_color': 'yellow', 'second_color':'blue'}, ] 

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

 // is a dict with 'main_color'='red' in the list already? // if not: add item 

  • Есть ли способ наблюдать за всей работой COM на компьютере?
  • UnicodeEncodeError: кодек ascii не может кодировать символ по специальному имени
  • Является ли хорошей практикой добавлять имена в __all__, используя декоратор?
  • Использование только части DB Django
  • Подключение двух разных виджетов на qt с помощью python с помощью кнопки
  • Грамматическая проверка для области текста html
  • Python pandas to_excel 'utf8' кодек не может декодировать байт
  • Как обновить изображение на метке tkinter?
  • 3 Solutions collect form web for “Проверьте, существует ли значение в списке словарей?”

    Вот один из способов сделать это:

     if not any(d['main_color'] == 'red' for d in a): # does not exist 

    Часть в круглых скобках представляет собой выражение генератора, которое возвращает True для каждого словаря, у которого есть пара ключей значений, которые вы ищете, в противном случае False .


    Если ключ также может отсутствовать, указанный выше код может дать вам KeyError . Вы можете исправить это, используя get и предоставив значение по умолчанию.

     if not any(d.get('main_color', None) == 'red' for d in a): # does not exist 

    Может быть, это помогает:

     a = [{ 'main_color': 'red', 'second_color':'blue'}, { 'main_color': 'yellow', 'second_color':'green'}, { 'main_color': 'yellow', 'second_color':'blue'}] def in_dictlist((key, value), my_dictlist): for this in my_dictlist: if this[key] == value: return this return {} print in_dictlist(('main_color','red'), a) print in_dictlist(('main_color','pink'), a) 

    Возможно, функция в этих строках – это то, что вам нужно:

      def add_unique_to_dict_list(dict_list, key, value): for d in dict_list: if key in d: return d[key] dict_list.append({ key: value }) return value 
    Python - лучший язык программирования в мире.