2016-03-31 61 views
3

我可以這樣做:如何檢查數組中某個鍵的值是否存在於另一個數組中?

filter(lambda x: x.key1 in ["aa", "bb", "cc"], [{key1: ..., key2: ...}, {key1: ...}]) 

我如何做相反的事情嗎?

dict_items = [{key1: ..., key2: ...}, {key1: ...}] 
filter(lambda x: x in ???dict_items.key1???, ["aa", "bb", "cc"]) 
+1

你不能訪問由點符號詞典詞條。 'x.key1'會給你一個屬性錯誤。你能添加一個樣本輸入和一個預期的輸出到你的問題嗎?或者顯示你的代碼的輸出。 – Kasramvd

回答

0

假設你有兩個dicts d1 = {key1: val1, key2: val2}和d2 = {key3: val3, key4: val4}

目前尚不清楚你想比較什麼,但如果你想對鍵進行比較只需鍵入:

set.intersection(set(d1.keys()), set(d2.keys())) 

對於值:

set.intersection(set(d1.values()), set(d2.values())) 
0

使用可以使用列表理解如下:

a = {"aa":1, "ll":4} 
b = {"bb": 'pl', "xx":12, "qq": 66} 
print [key for j in [a, b] for key, val in j.iteritems() if key in ["aa", "bb", "cc"]] 

或者,如果您只需要按鍵u可以使用:

print [key for j in [a, b] for key in j.keys() if key in ["aa", "bb", "cc"]] 

輸出:

['aa', 'bb'] 
相關問題