如何从 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
变量兼容。
我是 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
变量兼容。