问题描述
你好,我是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))