Страницы

Поиск по вопросам

суббота, 23 марта 2019 г.

Можно ли улучшить поиск в многомерном списке python

Здравствуйте. Есть многомерный список:
spisok=[{'a':'1','b':'2'},{'a':'3','b':'4'}]
необходимо проверить есть ли в списке ключ 'a' с определенным значением. поискав в интернете смог собрать такую конструкцию:
for i in range(len(spisok)): if spisok[i]['a'] == stroka_poiska: print('True')
Можно ли как то улучшить данный код? И верна ли логика построения алгоритма?


Ответ

Попробуйте так:
def chk_for_val(lst, key, val): for d in lst: if d.get(key) == val: return True return False
При использовании dict.get(key) (вместо dict[key]) - не будут генерироваться исключения для несуществующих ключей
In [138]: chk_for_val(lst, 'a', '3') Out[138]: True
In [139]: chk_for_val(lst, 'X', '3') Out[139]: False

Комментариев нет:

Отправить комментарий