从对象列表中删除 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

修正错误后,请随时为答案投票...