2017-09-23 3 views
0

Ich habe zwei Wörterbücherin Python

aDict = {'a': {'shape': 'square', 'size': 'large', 'color': 'red'}} 
bDict = {'b': {'shape': 'circle', 'size': 'large', 'color': 'red'}} 

Ich möchte, um den Wert zu berechnen, die in den beiden Worten unterscheiden (d.h. ‚Form‘: ‚Kreis‘ in diesem Fall). Wie kann ich das erreichen? Ich versuchte, die dicts in einen Satz zu konvertieren, aber tat

set(aDict) 

gibt mir nur die Schlüssel, und ich brauche mit den Werten des dicts zu arbeiten. Wie kann ich so etwas wie tun

set(aDict.values()) - set(bDict.values()) 

die 'Form' zurückgibt: 'square'

Lassen Sie mich wissen, wenn Sie mehr Klarheit benötigen, danke

+0

Was erwarten Sie, um das Ergebnis zu sein? "Form"? "Quadrat"? "Kreis"? '['Quadrat', 'Kreis']'? – mkrieger1

Antwort

1

aDict["a"].items() - bDict["b"].items()?

Technisch ^ anstelle von - verwenden, weil Sie wissen möchten, ob es einen Unterschied auch von der anderen Seite gibt. Dies gibt Ihnen das Ergebnis, nach dem Sie gesucht haben.

+0

Dies scheint mir eine "nicht hashbare Art" Dict – shpakz

+0

@shpakz Geben Sie die dicts aus den ... dicts. – Bharel

+0

@shpakz funktioniert für dich? – Bharel

0

Folgende sollten es tun.

for key,item in aDict['a'].items():    #go through aDict 
    if aDict['a'][key] != bDict['b'][key]:   #if values are not same 
     print(aDict['a'][key] , bDict['b'][key])  #print them