这是我的dicts
[{'task': 'send-email', 'email': {'id': 1234}},
{'task': 'send-alert', 'email': {'id': 4567}}]
我有一个方法:
def get_side_effect(self, type):
我正在尝试循环遍历数组中的每个dict
,并找到dict
,其中task
键包含传递给方法的类型的值。
答案 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)