从对象列表中删除 class 的一个对象
remove one object of a class from list of objects
我需要根据条件从对象列表中删除一个对象。
在 selectDoctor 方法中,我需要从列表中删除对象,其中它的 docid 等于给定的 id 和 return 删除的列表。
class Doctor:
def __init__(self, docid, docname, deptname):
self.docid = docid
self.docname = docname
self.deptname = deptname
class Hospital:
def selectDoctor(id,doclist):
for i in range(0, len(doclist)):
if doclist[i].docid==id: //in this condition I need to remove that object from list
doclist.remove(i) //by removing like this it is showing error
return doclist
for i in range(5):
docid=int(input())
docname=input()
deptname=input()
doclist.append(Doctor(docid,docname,deptname)
id=int(input())
res=Hospital.selectDoctor(id,doclist)
print(res)
使用 Python3 中的列表,使用以下语句很容易实现此目的(至少有三种可能性):
- 通过指定项目索引删除
doclist.pop(i)
或
- 通过指定项目索引删除(也允许索引范围,例如 del doclist[0:2] 用于删除给定列表的前三个项目) 使用关键字 del
del doclist[i]
- 通过指定项目本身删除
doclist.remove(doclist[i])
参考:https://docs.python.org/3.8/tutorial/datastructures.html
修正错误后,请随时为答案投票...
我需要根据条件从对象列表中删除一个对象。 在 selectDoctor 方法中,我需要从列表中删除对象,其中它的 docid 等于给定的 id 和 return 删除的列表。
class Doctor:
def __init__(self, docid, docname, deptname):
self.docid = docid
self.docname = docname
self.deptname = deptname
class Hospital:
def selectDoctor(id,doclist):
for i in range(0, len(doclist)):
if doclist[i].docid==id: //in this condition I need to remove that object from list
doclist.remove(i) //by removing like this it is showing error
return doclist
for i in range(5):
docid=int(input())
docname=input()
deptname=input()
doclist.append(Doctor(docid,docname,deptname)
id=int(input())
res=Hospital.selectDoctor(id,doclist)
print(res)
使用 Python3 中的列表,使用以下语句很容易实现此目的(至少有三种可能性):
- 通过指定项目索引删除
doclist.pop(i)
或
- 通过指定项目索引删除(也允许索引范围,例如 del doclist[0:2] 用于删除给定列表的前三个项目) 使用关键字 del
del doclist[i]
- 通过指定项目本身删除
doclist.remove(doclist[i])
参考:https://docs.python.org/3.8/tutorial/datastructures.html
修正错误后,请随时为答案投票...