我有一个函数,我希望一次一个地浏览一个自定义对象(给定中点)列表,并将对象与独特的中点对齐并放入一个新的列表。下面的代码给了我一个错误,即列表没有名为'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'是什么? –
是否要维护新列表中对象的顺序? –