Преобразование списка в множество без упорядочивания

На входе имеется список

my_list = [18, 19, 20, 21, 22, 23, 0]

При преобразовании в множество получаем:

my_set = set(my_list)
>>> my_set = {0, 18, 19, 20, 21, 22, 23}

Есть ли способ обойти это?


Ответы (2 шт):

Автор решения: becouse

Попробуйте вот так

 my_set = sorted(set(my_list), key=my_list.index)

Вообще set это несортированная коллекция уникальных элементов. В вашем случае просто так совпало. Для ускорения поиска и других операций элементы в множестве располагаются определённым образом.

→ Ссылка
Автор решения: MarianD

Множество по определению есть неупорядоченным, значит, это просто неправильный подход.
Не возможно полагаться на порядок элементов в множестве.

Как я понял, вы хотите просто устранить дубликаты с сохранением порядка:

new_list = []

for el in my_list:
    if el not in new_list:
        new_list.append(el)
→ Ссылка