0
我有一個自定義類的對象與不同類型的各種屬性的分類。我想根據這些屬性之一從這些對象的列表中刪除重複項。有效的方法來從Python中的自定義對象列表中刪除重複的信息
就像這樣,但實際上得到的是對象列表而不是指定屬性的列表。
filteredData = list(set([x.attribute[0] for x in objList]))
我有一個自定義類的對象與不同類型的各種屬性的分類。我想根據這些屬性之一從這些對象的列表中刪除重複項。有效的方法來從Python中的自定義對象列表中刪除重複的信息
就像這樣,但實際上得到的是對象列表而不是指定屬性的列表。
filteredData = list(set([x.attribute[0] for x in objList]))
你需要實現方法哈希和對象
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
在最終列表中,您收到的對象不是屬性的值 – cehmja 2015-02-09 00:46:13
到底是什麼屬性?所有的對象都有這個屬性嗎?你在尋找包含這個屬性的特定值的對象嗎? – 2015-02-08 23:47:20