删除列表结构中的重复项(python)

删除列表结构中的重复项(python),python,Python,我在python中有以下结构: 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.201

我在python中有以下结构:

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'],
]

编辑:列表已按日期排序。 EDIT2:固定示例 提前谢谢

在猜测你想做什么的时候,一种粗糙的方法:

#!/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']]

你尝试了几十个相关问题中的一个解决方案。我已经检查过一次,我认为迭代是我发现的最简单、最不复杂的解决方案。你的例子在语法上是不正确的。