python - 确定嵌套对象是否在列表中

标签 python list dictionary

我正在寻找一种检查列表中是否存在嵌套对象的简单方法。

例如

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/

相关文章:

python - 给字典中的值赋值时,是什么导致 Python 中出现这种奇怪的结果?

PowerShell 将字典转换为哈希表

python - Numpy 多维数组切片

python - 有没有一种快速的方法来创建一个 numpy 数组,将唯一值减少到最低形式?

python - 获取每个索引(行)的列名,以便列值强加于 pandas 中的某些条件

PHP 数组中的有序列表

r - 从没有循环的嵌套列表中提取元素

python - 使用依赖条件过滤 DataFrame 中的行

c# - 从列表中删除重复项,但保留一个并进行编辑

Python:数据在内存中的有效存储