删除列表结构中的重复项(python)
我在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
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']]
你尝试了几十个相关问题中的一个解决方案。我已经检查过一次,我认为迭代是我发现的最简单、最不复杂的解决方案。你的例子在语法上是不正确的。