2015-02-08 33 views
0

我有一個自定義類的對象與不同類型的各種屬性的分類。我想根據這些屬性之一從這些對象的列表中刪除重複項。有效的方法來從Python中的自定義對象列表中刪除重複的信息

就像這樣,但實際上得到的是對象列表而不是指定屬性的列表。

filteredData = list(set([x.attribute[0] for x in objList]))

+0

到底是什麼屬性?所有的對象都有這個屬性嗎?你在尋找包含這個屬性的特定值的對象嗎? – 2015-02-08 23:47:20

回答

0

你需要實現方法哈希和對象

class A: 
    def __init__(self, a): 
     self.attr1 = a 

    def __hash__(self): 
     return hash(self.attr1) 

    def __eq__(self, other): 
     return self.attr1 == other.attr1 

    def __repr__(self): 
     return str(self.attr1) 

EQ

l = [A(5), A(4), A(4)] 
print list(set(l)) 
print list(set(l))[0].__class__ # ==> __main__.A. It's a object of class 
+0

在最終列表中,您收到的對象不是屬性的值 – cehmja 2015-02-09 00:46:13

相關問題