Python 检查对象列表是否包含具有特定属性值的对象
我想检查我的对象列表是否包含具有特定属性值的对象Python 检查对象列表是否包含具有特定属性值的对象,python,list,attributes,any,Python,List,Attributes,Any,我想检查我的对象列表是否包含具有特定属性值的对象 class Test: def __init__(self, name): self.name = name # in main() l = [] l.append(Test("t1")) l.append(Test("t2")) l.append(Test("t2")) 例如,我想要一种检查列表是否包含名为“t1”的对象的方法。怎样才能做到呢?我发现, 我不想每次都浏览整个列表,我只需要知道是否有1个匹配的实例。fi
class Test:
def __init__(self, name):
self.name = name
# in main()
l = []
l.append(Test("t1"))
l.append(Test("t2"))
l.append(Test("t2"))
例如,我想要一种检查列表是否包含名为“t1”的对象的方法。怎样才能做到呢?我发现,
我不想每次都浏览整个列表,我只需要知道是否有1个匹配的实例。
first(…)
或any(…)
或其他方法会这样做吗?正如您很容易从中看到的,any()
函数会短路,一旦找到匹配项,就会返回True
any(x.name == "t2" for x in l)
first()
函数作为名为next()
的内置函数提供。
any(x.name == "t2" for x in l)