我有一个列表,我正试图从中删除重复的项目。我使用的是 python 2.7.1,所以我可以简单地使用set()函数。但是,这会重新排序我的列表。对于我的特殊情况,这是不可接受的。
下面是我写的一个函数;这样做的。但是我想知道是否有更好/更快的方法。对此的任何评论也将不胜感激。
def ordered_set(list_):
newlist = []
lastitem = None
for item in list_:
if item != lastitem:
newlist.append(item)
lastitem = item
return newlist
上面的函数假设没有任何项目是None,并且项目是按顺序排列的(即['a', 'a', 'a', 'b', 'b', 'c', 'd '] )
上述函数返回['a', 'a', 'a', 'b', 'b', 'c', 'd']为['a', 'b', 'c', 'd' ] .