Python:根据key的值在数组中查找dict

时间:2014-02-22 04:15:54

标签: python list dictionary

这是我的dicts

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

我有一个方法:

def get_side_effect(self, type):

我正在尝试循环遍历数组中的每个dict,并找到dict,其中task键包含传递给方法的类型的值。

1 个答案:

答案 0 :(得分: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)