2014-02-22 82 views
1

這裏值查找陣列字典是我的dicts的Python:基於關鍵

[{'task': 'send-email', 'email': {'id': 1234}}, 
{'task': 'send-alert', 'email': {'id': 4567}}] 

陣列我有一個方法:

def get_side_effect(self, type): 

我通過每個dict試圖循環數組中並找到dict,其中task鍵包含傳入該方法的類型的值。

回答

3
def get_side_effect(self, key): 
    return [cdict for cdict in my_list if cdict["task"] == key] 

print obj.get_side_effect("send-email") 

輸出

[{'task': 'send-email', 'email': {'id': 1234}}] 

建議不要命名變量type,因爲這將影內建type功能。

但是,如果你所要做的就是循環的結果,你可以簡單地這樣做

for mathched_dict in (cdict for cdict in my_list if cdict["task"] == key): 
    print mathched_dict 

或者你可以將其轉換成一個列表,內建list功能,這樣

list(cdict for cdict in my_list if cdict["task"] == key) 
+0

感謝您的幫助! – dennismonsewicz