Pythonのリストにオブジェクトを削除する方法:今、私はから削除したい私は、次のよう<code>point</code>という名前のクラスを作成し
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)
:
class point:
def __init__(self):
self.x = 0
self.y = 0
をしてpoint
インスタンスのリストを作成しますリストインスタンスは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オブジェクトではありません。 –
あなたの '__cmp__'定義は私には見えません。ブール値ではなく整数を返すことになっています。 – Kevin