2016-09-16 1 views
-3

Ich habe zwei Listen, die Wörterbücher enthalten. Jedes Wörterbuch hat nur einen Eintrag. Ich möchte prüfen, ob ein Schlüssel in Wörterbuch A (in Liste X) auch in einem Wörterbuch in Liste Y vorhanden ist. Wenn dies der Fall ist, sollten der Schlüssel und die dazugehörigen Werte gedruckt werden.Vergleichen von Wörterbüchern in Python-Listen

Beispiel:

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

In diesem Fall sollte der Ausgang sein:

key1: value1, value3 

Vielen Dank im Voraus.

+2

Sie haben die Liste der Sätze nicht Wörterbücher. – Kasramvd

+0

Sorry, das war ein Fehler. Danke fürs bemerken. – user2879551

Antwort

0

Eine sehr einfache Art und Weise sein, es wäre zu tun:

#!/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

Das funktioniert nicht für mich. Das Zippen der Listen stimmt mit dem ersten Element von L1 bis zum ersten Element von L2 usw. überein. Das einzige Mal, dass ich eine Übereinstimmung mit Ihrer Lösung bekommen würde, ist, wenn diese beiden zufällig zusammenpassen (was fast nie der Fall ist). Hast du eine andere Idee? – user2879551

+0

großartig! Danke vielmals! – user2879551

Verwandte Themen