2012-02-13 84 views
0

我有以下的字典列表。我想刪除對象字段的重複項。如果該對象已經出現,刪除該項目的最簡單方法是什麼?Python刪除帶有重複字段的字典項目

[{'date': datetime.datetime(2012, 2, 12, 21, 42, 54, 634699), 
    'object': <Subscription: Subscription object>, 
    'subscription': <Subscription: Subscription object>, 
    'type': 'subscription'}, 
{'date': datetime.datetime(2012, 2, 12, 21, 25, 51, 51554), 
    'object': <Subscription: Subscription object>, 
    'subscription': <Subscription: Subscription object>, 
    'type': 'subscription'}, 
{'date': datetime.datetime(2012, 2, 12, 20, 59, 18, 211191), 
    'object': <Subscription: Subscription object>, 
    'subscription': <Subscription: Subscription object>, 
    'type': 'subscription'}, 
{'date': datetime.datetime(2012, 2, 12, 18, 1, 37, 43482), 
    'object': <Subscription: Subscription object>, 
    'subscription': <Subscription: Subscription object>, 
    'type': 'subscription'}, 
{'date': datetime.datetime(2012, 2, 12, 18, 1, 24, 322306), 
    'object': <TipList: mulligan - Buenos Aires>, 
    'subscription': <Subscription: Subscription object>, 
    'type': 'tiplist'}, 
{'date': datetime.datetime(2012, 2, 9, 23, 33, 17, 511657), 
    'object': <TipList: mulligan - Buenos Aires>, 
    'subscription': <Subscription: Subscription object>, 
    'type': 'tiplist'}, 
{'date': datetime.datetime(2012, 2, 7, 16, 18, 51, 597775), 
    'object': <TipList: mulligan - Buenos Aires>, 
    'subscription': <Subscription: Subscription object>, 
    'type': 'tiplist'}, 
    'object': <TipList: mulligan - Buenos Aires>, 
    'subscription': <Subscription: Subscription object>, 
    'type': 'tiplist'}, 
{'date': datetime.datetime(2012, 2, 7, 10, 9, 12, 975944), 
    'object': <TipList: mulligan - Buenos Aires>, 
    'subscription': <Subscription: Subscription object>, 
    'type': 'tiplist'}, 
{'date': datetime.datetime(2012, 1, 19, 20, 37, 26, 663267), 
    'object': <TipList: a - Buenos Aires>, 
    'subscription': <Subscription: Subscription object>, 
    'type': 'tiplist'}] 
+1

我們不知道'訂閱'是什麼樣子,也不知道構成重複的'訂閱'。 – 2012-02-13 06:43:44

+0

我不明白你想要什麼樣的最終結果。 – 2012-02-13 07:07:42

+1

更正:您有以下_list_的字典。 – 2012-02-13 07:58:47

回答

6

假設__hash__方法是SubscriptionTipList類正確實施,我會做一些事情如下:

seen = set() 
new_l = [] 
for item in l: 
    obj = item['object'] 
    if obj not in seen: 
     seen.add(obj) 
     new_l.append(item) 

其中l是原來的列表,並new_l列表中沒有重複。