如何解决如何从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 举报,一经查实,本站将立刻删除。