Вместо сортировки или линейного сканирования и повторного подсчета основного списка для его появления каждый раз.
Подсчитать количество вхождений, а затем фильтровать элементы, которые появляются один раз ...
>>> from collections import Counter
>>> let = ['a', 'b', 'a', 'c', 'a']
>>> [k for k, v in Counter(let).items() if v == 1]
['c', 'b']
Вы есть посмотреть на последовательность, по крайней мере один раз, независимо - хотя это имеет смысл ограничить количество когда вы это делаете.
Если вы действительно хотите, чтобы избежать любого типа или set
или иначе хешированной контейнер (потому что вы, возможно, не может использовать их?), То да, вы можете отсортировать его, а затем использовать:
>>> from itertools import groupby, islice
>>> [k for k,v in groupby(sorted(let)) if len(list(islice(v, 2))) == 1]
['b', 'c']
Для какого языка ? (Измените свой вопрос и добавьте его в теги) –
@michnguyen Вам нужно будет немного разъяснить, что вы пытаетесь выполнить, потому что это не просто удаление дубликатов (если это так, то «а» будет включены в результат). – rchang