Python:按属性值从列表中删除对象

ChrisLearns 编程
class MyClass():
    def __init__(self, name, att1, att2):
        ...

myList = [MyClass("p1", 1, 1), MyClass("p2", 0, 0), MyClass("p3", 0, 1)]

现在我想从 myList 中删除每个对象,如果它的 att2 == 1。

阿尔伯特温斯坦

与其从列表中删除类实例,不如构造一个排除不需要的类的新列表(列表理解)。例如:

class MyClass():
    def __init__(self, name, att1, att2):
        self._name = name
        self._att1 = att1
        self._att2 = att2
    def __repr__(self):
        return f'{self._name=}, {self._att1=}, {self._att2=}'

myList = [MyClass("p1", 1, 1), MyClass("p2", 0, 0), MyClass("p3", 0, 1)]

myList = [c for c in myList if c._att2 != 1]

print(myList)

输出:

[self._name='p2', self._att1=0, self._att2=0]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章