Поиск ключа Значение пары среди двух отдельных словарей в python - PullRequest
0 голосов
/ 25 апреля 2020

Ниже приведен фрагмент кода, я пытаюсь отфильтровать список словарей на основе правила фильтрации. Так как правило фильтра изменится, и я не хочу, чтобы жесткий код. Если приведенный ниже фрагмент возвращает значение true, я сохраню этот словарь в отдельном словаре для выполнения дальнейших действий. этот фрагмент кода возвращает False, поскольку он повторяется столько раз, сколько зависит от количества ключей в big_dict. Есть ли способ перебрать big_dict, основываясь только на значениях small_dict. Если бы кто-то мог помочь мне в этом.

new_dict={}
big_dict = {'a': 1, 'b': 2,'c': 3,'d':4,'e':5}
small_dict = {'filter_rule': {'a': 1, 'b': 2, 'e': 5}}
for key, value in small_dict.items():
    if key in 'filter_rule':
        res = all( value.get( big_key, None ) == big_val for big_key, big_val in big_dict.items() )
        if res == True:
        new_dict = big_dict
        print(new_dict)

1 Ответ

0 голосов
/ 25 апреля 2020
new_dict={}
big_dict = {'a': 1, 'b': 2,'c': 3,'d':4,'e':5}
small_dict = {'filter_rule': {'a': 1, 'b': 2, 'e': 5}}
for key, value in small_dict.items():
    if key in 'filter_rule':
        for k,v in small_dict.get(key)
            if k in big_dict.keys()
               if v == big_dict.get(k):
                   good = 1
                   continue;
               else:
                   good = 0
                   break;
...