OOP python - 从列表中删除类实例

时间:2012-02-04 12:27:46

标签: python list object

我有一个列表,用于保存特定类创建的对象。

我想知道,因为我无法解决这个问题,如何从列表中删除该类的实例?

这应该基于知道对象的一个​​属性而发生。

3 个答案:

答案 0 :(得分:12)

遍历列表,找到对象及其位置,然后将其删除:

for i, o in enumerate(obj_list):
    if o.attr == known_value:
        del obj_list[i]
        break

答案 1 :(得分:6)

您可以使用列表理解:

thelist = [item for item in thelist if item.attribute != somevalue]

这会删除item.attribute == somevalue 所有项目。

如果您只想删除一个此类项目,请使用WolframH's solution

答案 2 :(得分:1)

您可以将它们存储在dict中并按名称删除它们

di = {"test" : my_instance()}
del di['test']