我不确定这是否可行,但如果有人有任何变通办法,那就太棒了。
如果有这样的课程:
class person:
def __init__(self, name):
self.name = name
我将这个类的一堆实例添加到列表中,如下所示:
people = [person("Bob"), person("Tim"), person("Sue")]
我想,在一个完美的世界里,然后再执行这段代码:
people.remove(person("Bob"))
然而,不幸的是,由于课程的运作方式,这是不可能的。这有什么办法吗?最好是适合一条线的东西吗?
欢迎任何想法!
答案 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)