我有一个类user
,它有一个属性metadata
。
metadata
是一个对象列表,每个对象都有不同的类,例如:
user.metatada = [Employee(), Student(), OtherClass()]
在更新脚本中,我需要检查列表中是否存在某种类型,如下所示:
if type(Employee()) in user.metadata:
replace user.metadata[indexOfThatEmployee] with new Employee()
else:
user.metadata.append(new Employee())
无论如何都可以轻松检查列表中是否存在某种类型?
答案 0 :(得分:0)
知道了。
test = [Employee()]
if any(isinstance(x, Employee) for x in user.metadata):
user.metadata = [x for x in user.metadata if not isinstance(x, Employee)] + test
else:
user.metadata = user.metadata + test
因此,这将检查列表中是否存在作为Employee类实例的对象,如果是,则过滤现有Employee对象的列表并添加新对象,如果它不存在,只需添加它。