2012-02-13 79 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列表中没有重复。