У меня есть список, из которого я пытаюсь удалить повторяющиеся элементы. Я использую 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'] .