Упорядоченные наборы Python 2.7

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

12
задан rectangletangle 27 February 2014 в 02:06
поделиться