微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

班级

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: 检查给出错误,而它应该给出正确。

解决方法

原因是因为commit.id变量是int类型,而deleteID变量是str类型, 和 "5" == 5 之类的东西在 Python 中永远不会是 True

只需替换行

deleteID = split[2]

deleteID = int(split[2])

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

,

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

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

Here 是删除 API:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。