字典列表上的Python查询

问题描述

你好,我是python的新手(实际上是从VB迁移过来的)

在VB中,如果我有d个对象列表,则可以执行以下操作:

    Dim value_to_find = List_of_objects.Where(Function(x) x.something).FirstOrDefault

在我当前的项目中,我的数据结构是字典列表。像这样:

        [{Id:1,name:Bob,surname:brown,dateB:07/12/1985,status:Active,code:202020,contact:1,list_of_dicts2[{id:1,dateB:07/07/2020},{id:2,dateB:07/08/2020}]}]

现在,我想访问list_of_dicts2中的某个dateB,是否可以像在Visual Basic中那样进行操作?还是我必须遍历所有内容

解决方法

您可以使用next函数和理解来获得与条件匹配的第一个日期。

next(d['dateB'] for d in list_of_dicts if your_condition)

next还允许一个默认值,如果没有一个符合您列表中的条件:

next((d['dateB'] for d in list_of_dicts if your_condition),your_default_value)
,

尝试一下:

list(filter(lambda d: d['dateB']==value_to_find,list_of_dicts2))