我正在寻找一种检查列表中是否存在嵌套对象的简单方法。
例如
example_list = [{'id':1, 'name':'k'}, {'id':2, 'name':'y'}, {'id':3, 'name':'z'}]
是否有一个简单的函数可以确定 id=3
的字典是否在 example_list
中?我不想使用循环,因为它看起来有点矫枉过正。
最佳答案
你可以使用 any
和一个 generator expression :
if any(x['id'] == 3 for x in example_list):
当然,这假定所有词典都有一个id
键。如果没有,那么你可以这样做:
if any(x.get('id', 0) == 3 for x in example_list):
更新:
要获取返回的字典,请使用 next
:
dct = next((x for x in example_list if x['id'] == 3), None)
如果列表中没有满足条件的字典,我将 None
作为默认返回值。但您可以选择您想要的任何其他值。
关于python - 确定嵌套对象是否在列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27571629/