在嵌套字典中搜索值的有效方法?

时间:2018-08-29 21:02:54

标签: python dictionary search

如果我有一个任意长度的嵌套字典列表,看起来像这样:

list_of_dic = [{'A': 1, 'B': 2, 'C': {'name': 'some_name1', ...}},
               {'A': 4, 'B': 1, 'C': {'name': 'some_name2', ...}},
               {'A': 3, 'B': 4, 'C': {'name': 'some_name3', ...}},
               ...]

我想找到包含我想要的C的嵌套字典(即与键name关联的字典)(每个name是唯一的;没有重复项) ,最有效的方法是什么?

我可以想到两种方法;第一个是循环浏览所有内容,这听起来很糟糕,而第二个是:

[x['C'] for x in list_of_dic if x['C']['name'] == 'some_name5'][0]

有一种更好,更有效的方法来执行此操作,因为list_of_dic可能会很长。谢谢。

1 个答案:

答案 0 :(得分:2)

采用这种方法,即使找到匹配项,您仍然要遍历整个list_of_dict。

您可以使用next仅获得第一个比赛

next((x['C'] for x in list_of_dic if x['C']['name'] == 'some_name5'), None)