首页 > 解决方案 > 从列表中弹出类的实例

问题描述

我想在不知道索引的情况下classB从我的列表中删除第一个实例。l我知道这list.pop()需要索引,所以我首先需要获取列表中实例的索引。基本上是这样的:

class classA:
    pass

class classB:
    pass

A1 = classA()
A2 = classA()
B = classB()
l = [A1, A2, B]

x = l.pop(l.index(classB))

x现在是,B现在l看起来像这样:

l = [A1, A2]

我怎么能做到这一点?

标签: pythonlist

解决方案


只需编写一个 for 循环:

for idx, obj in enumerate(l):
    if isinstance(obj, classB):
        x = l.pop(idx)
        break
else:
    raise ValueError("no instance of classB in list")

如果您将多次使用它,请将其包装在一个函数中。逻辑是不平凡的,所以抵制单线它的诱惑。


推荐阅读