从列表中删除类实例

时间:2015-07-02 17:34:10

标签: python object

我不确定这是否可行,但如果有人有任何变通办法,那就太棒了。

如果有这样的课程:

class person:
    def __init__(self, name):
        self.name = name

我将这个类的一堆实例添加到列表中,如下所示:

people = [person("Bob"), person("Tim"), person("Sue")]

我想,在一个完美的世界里,然后再执行这段代码:

people.remove(person("Bob"))

然而,不幸的是,由于课程的运作方式,这是不可能的。这有什么办法吗?最好是适合一条线的东西吗?

欢迎任何想法!

2 个答案:

答案 0 :(得分:1)

一种明显/直观的方式可能是:

people = [person for person in people if person.name != 'Bob']

答案 1 :(得分:0)

如果名称是唯一的:

people = [person("Bob"), person("Tim"), person("Sue")]


people[:] = [ins for ins in people if ins.name != "Bob"]
print(people)