提问人:Black Swan 提问时间:2/10/2021 最后编辑:RedBlack Swan 更新时间:2/10/2021 访问量:126
如何从 Python 对象列表中查找和删除对象
how to find and remove object form a list of python object
问:
我是 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:
答:
0赞
Nicolas Busca
2/10/2021
#1
您可以捕获值不在列表中时引发的异常:
try:
listCommit.remove(d1)
except ValueError:
pass
下面是删除 API:
1赞
Red
2/10/2021
#2
原因是因为变量是 类型 ,而变量是类型 ,
像这样的东西永远不会出现在 Python 中。commit.id
int
deleteID
str
"5" == 5
True
只需更换生产线
deleteID = split[2]
跟
deleteID = int(split[2])
转换数据类型以与变量兼容。commit.id
评论
obj.id
deleteID
commit
[(id,msg) for id,msg in commits if msg!= delete_id]