2016-09-16 6 views
-3

У меня есть два списка, которые содержат словари. Каждый словарь содержит только одну запись. Я хотел бы проверить, существует ли ключ в словаре A (в списке X) в словаре в списке Y. Если это так, то ключ и значения, принадлежащие ему, должны быть напечатаны.Сравнение словарей в списках Python

Пример:

listA = [{key1: value1}, {key2: value2}] 
listB = [{key1: value3}, {key4: value4}] 

В этом случае выходной сигнал должен быть:

key1: value1, value3 

Заранее спасибо.

+2

У вас есть список наборов не словарей. – Kasramvd

+0

Извините, это была ошибка. Спасибо, что заметили. – user2879551

ответ

0

Самый простой способ сделать это будет:

#!/usr/bin/env python 

l1 = [{'1':"one"} , {'2':"two"}] 
l2 = [{'3':"three"} , {'1':"one_too"}] 

def cmp(l1,l2): 
    for i in l1:  
     for j in l2: 
      for (key1,value1),(key2,value2) in zip(i.iteritems(),j.iteritems()): 
       if key1==key2: 
        print key1+": "+value1+", "+value2 
        break 

cmp(l1,l2) 
+0

Это не работает для меня. Закрепление списков соответствует первому элементу L1 для первого элемента L2 и т. Д. Единственный раз, когда я получаю совпадение с вашим решением, - это совпадение этих двух совпадений (что почти никогда не бывает). Есть ли у вас другая идея? – user2879551

+0

отлично! большое спасибо! – user2879551

Смежные вопросы