我有一個函數,我希望一次一個地瀏覽一個自定義對象(給定中點)列表,並將對象與獨特的中點對齊並放入一個新的列表。下面的代碼給了我一個錯誤,即列表沒有名爲'midPoint'的屬性,但是我不確定如何讓代碼在列表中搜索匹配中點的對象。有沒有人有建議?在python中通過屬性刪除對象列表中的重複項
class Obj():
def __init__(self, midPoint=[0,0]):
self.midPoint = midPoint
obj1 = Obj(midPoint = [1,1])
obj2 = Obj(midPoint = [2,2])
obj3 = Obj(midPoint = [3,3])
obj4 = Obj(midPoint = [1,1])
obj5 = Obj(midPoint = [2,2])
l = [obj1, obj2, obj3, obj4, obj5]
list_no_duplicates = []
def Delete_duplicates(list1):
for i in list1:
if i.midPoint not in list_no_duplicates.midPoint:
list_no_duplicates.append(x)
Delete_duplicates(l)
print list_no_duplicates
https://stackoverflow.com/questions/4169252/remove-duplicates-in-list-of-object-with-python –
的可能的複製'list_no_duplicates'是一個列表,並沒有一個' midPoint'屬性。如果你想看看這個屬性,你需要手頭有一個Object對象。另外,'list_no_duplicates.append(x)'行中的'x'是什麼? –
是否要維護新列表中對象的順序? –