如果我有一个任意长度的嵌套字典列表,看起来像这样:
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
可能会很长。谢谢。
答案 0 :(得分:2)
采用这种方法,即使找到匹配项,您仍然要遍历整个list_of_dict。
您可以使用next
仅获得第一个比赛
next((x['C'] for x in list_of_dic if x['C']['name'] == 'some_name5'), None)