如何从 python 个对象列表中查找和删除对象

how to find and remove object form a list of python object

我是 python 的新手。我是一名 java 程序员。我有一个 class 的对象列表。我的目的是从列表中查找并删除一个对象。

class

class commit:
    def __init__(self, id, message):
        self.id = id
        self.message = message

我要查找和删除的代码:

elif command.startswith("git delete"):
        split = command.split();
        deleteID = split[2]; // the id which will be deleted.
        print('deleteID:' + deleteID)
        d1 = {};
        for obj in listCommit:
            print(obj.id)
            if obj.id == deleteID:
                print(obj)
                listCommit.remove(obj);
                d1 = obj;
        # listCommit.remove(d1);    

我发现这个 if obj.id == deleteID: 不起作用。

listCommit.remove(d1); 此行显示对象未退出的错误。

所以我的问题是:如何从列表中查找和删除对象?

而这个 if obj.id == deleteID: 检查给出的是错误的,而它应该给出的是正确的。

当值不在列表中时,您可以捕获抛出的异常:

try:
    listCommit.remove(d1)
except ValueError:
    pass

Here 的删除 API:

原因是因为commit.id变量是int类型,而deleteID变量是str类型, "5" == 5 之类的东西在 python.

中永远不会是 True

只需替换行

deleteID = split[2]

deleteID = int(split[2])

将数据类型转换为与 commit.id 变量兼容。