我有一個需要比較的多個字典列表。列表中的字典數量將根據查詢結果而變化。字典的使用同一組密鑰在多字典中查找不同值
實施例列表中具有相同的密鑰,但不同的值:
test = [{'a':'1','b':'1','c':'4'},{'a':'1','b':'2','c':'5'},{'a':'1','b':'3','c':'6'}]
期望的輸出:
[{'b':'1','c':'4'},{'b':'2','c':'5'},{'b':'3','c':'6'}]
欲能夠輸出什麼鍵(與值)是不同在列表中(如果有的話),如果沒有輸出空列表。
我試過這段代碼,但它給了我具有相同值的那些代碼。
mysets = (set(x.items()) for x in test)
print reduce(set.intersection, mysets)
輸出:
{'a':'1'}
我也試過這一個,但它只是給我的第一部字典不同的對。
def IntersectDicts(d1, d2) :
return dict(filter(lambda (k,v) : k in d2 and d2[k] != v, d1.items()))
result = reduce(IntersectDicts, test)
print result
輸出:
{'b': '1', 'c': '4'}
你想出來把哪種類型????像{'a':'1','c':'6','b':'3'} – user00000341
對不起,我編輯了問題@ user00000341,它的第一個輸出 – essramos