проверить заданные пары ключей и значений c в двух словарях (оба словаря имеют одинаковые пары ключ и значение) - PullRequest
1 голос
/ 19 февраля 2020

У меня есть два словаря, которые имеют одинаковые пары ключ и значение. Я хочу сравнить только указанные пары ключ-значение c и вернуть true. Я новичок в python, пожалуйста, помогите мне написать функцию для того же.

Словари

A: {'id1': 'target', 'start1': '39', 'end1': '45', \
    'id2': 'query', 'start2': '98', 'end2': '104'}
B: {'id1': 'target', 'start1': '39', 'end1': '45', \
    'id2': 'query', 'start2': '98', 'end2': '104'}

Здесь я хочу проверить, если 'start1', * 1007 Значения *, 'start2' и 'end2' одинаковы не являются.

Ответы [ 2 ]

1 голос
/ 19 февраля 2020
result = all( A[k]==B[k] for k in ('start1', 'end1', 'start2', 'end2'))
0 голосов
/ 19 февраля 2020

Вы можете использовать для l oop:

wanted_keys = {'start1', 'end1', 'start2', 'end2'}

same = True
for k in wanted_keys:
    if A.get(k) != B.get(k):
        same = False
        break 

однострочный код:

all(A.get(k) == B.get(k) for k in wanted_keys)
...