我創建了一個名爲point
類如下:如何刪除對象的Python列表
class point:
def __init__(self):
self.x = 0
self.y = 0
,創造point
實例的列表:
p1 = point()
p1.x = 1
p1.y = 1
p2 = point()
p2.x = 2
p2.y = 2
p_list = []
p_list.append(p1)
p_list.append(p2)
現在我想從刪除列表x = 1
和y = 1
的實例,我該怎麼做?
我嘗試添加了point
類__cmp__
方法如下:
class point:
def __init__(self):
self.x = 0
self.y = 0
def __cmp__(self, p):
return self.x==p.x and self.y==p.y
但下面的代碼不起作用
r = point()
r.x = 1
r.y = 1
if r in p_list:
print('correct')
else:
print('wrong') # it will go here
p_list.remove(r) # it reports 'ValueError: list.remove(x): x not in list'
我想這是做'r'不是_identical_的項目在你想刪除列表。 –
我認爲@ OrangeFlash81是正確的。即使p1和r對於x和y具有相同的_values_,它們也不是_same object_。 –
你的'__cmp__'定義對我來說不正確。它應該返回一個整數,而不是布爾值。 – Kevin