Здравствуйте. Есть многомерный список:
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
Комментариев нет:
Отправить комментарий