2011-08-01 86 views
-3

我在蟒蛇的結構如下:刪除重複的表結構(蟒蛇)

revisions = [ 
['01.02.2010','abc','qwe'], 
['02.02.2010','abc','qwe'], 
['03.02.2010','aaa','qwe'], 
['04.02.2010','aaa','qwe'], 
['05.02.2010','aaa','qwe'], 
['06.02.2010','aaa','dsa'], 
] 

如何刪除以最小的算法複雜度的重複?輸出示例:

revisions = [ 
['01.02.2010','abc','qwe'], 
['03.02.2010','aaa','qwe'], 
['06.02.2010','aaa','dsa'], 

]

編輯:列表已經通過日期排序。 編輯2:修正示例 提前致謝!

+4

您嘗試在幾十上側相關問題的解決方案之一。 –

+0

我一直在檢查它,我認爲迭代是我找到的最簡單和最不復雜的解決方案。 – Gandi

+1

您的示例在語法上不正確。 – deStrangis

回答

3

粗的方法(而猜測你想要做什麼):

#!/usr/bin/env python 

import pprint 

revisions = [ 
    ['01.02.2010','abc','qwe'], 
    ['02.02.2010','abc','qwe'], 
    ['03.02.2010','aaa','qwe'], 
    ['04.02.2010','aaa','qwe'], 
    ['05.02.2010','aaa','qwe'], 
    ['06.02.2010','aaa','dsa'], 
] 

uniq, seen = [], set() # sets have O(1) membership tests 

for rev in revisions: 
    if tuple(rev[1:]) in seen: 
     continue 
    else: 
     seen.add(tuple(rev[1:])) 
     uniq.append(rev) 

pprint.pprint(uniq) 

# prints: 
# [['01.02.2010', 'abc', 'qwe'], 
# ['03.02.2010', 'aaa', 'qwe'], 
# ['06.02.2010', 'aaa', 'dsa']]