Skip to main content
 首页 » 编程设计

Python:在符合给定条件的第一个对象的列表中查找位置

2025年05月04日14jyk

我有以下类型的列表:

class Any(object): 
    def __init__(self,a,b): 
        self.a=a 
        self.b=b 
 
l=[Any(1,3),Any(2,4),Any(1,2),Any(None,6),Any('hello',6), Any(1,'ChuckNorris'),Any(1,2)] 

l 是一个仅包含 Any 实例的列表。我想找到属性 a 等于“None”的第一个实例的位置。

由于我的列表很长,算法不应探索整个列表,但它应该在条件(在我的示例中,属性 a 等于 None ) 被发现。

在上面的例子中,这个算法的答案应该是 3。

请您参考如下方法:

使用生成器表达式和 next :

next((i for i, item in enumerate(l) if item.a is None), None) 

如果没有找到这样的项目,这将返回 None。

演示:

>>> l=[Any(1,3),Any(2,4),Any(1,2),Any(None,6),Any('hello',6), Any(1,'ChuckNorris'),Any(1,2)] 
>>> next((i for i, item in enumerate(l) if item.a is None), None) 
3