Как получить другие значения в словаре, тогда одно значение равно

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

alphabets = [
              {"name": "abc", "value": "first_three"}, 
              {"name": "mno", "value": "middle"}, 
              {"name": "xyz", "value": "last_three"}
            ]

Как я могу получить first_three когда abc .

Это то, что я делаю, но я не получаю никаких результатов.

res = [ sub['name'] for sub in d['alphabets'] ]
            if res == 'abc':
               val = [ sub['value'] for sub in d['alphabets'] ]
               print(val)

Я не получаю никаких результатов обратно. Как я могу получить first_three когда name == 'abc

Всего 2 ответа


Используя понимание списка:

res = [d['value'] for d in list_dict if d['name'] == 'abc']

>>> print(res)
['first_three']

for d in list_dict:
  if d['name'] == 'abc':
    print d['value']

Я не совсем понимаю стратегию, которую вы используете в своем коде, которая не работает, но я могу сказать вам одну вещь: res == 'abc' никогда не будет истинным, потому что вы устанавливаете res для списка в первой строке.


Есть идеи?

10000