Преобразование списка в множество без упорядочивания
На входе имеется список
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)