Питон, множества и метод set()
s = ['a', 'n', 'o', 't']
d = set(s)
print(d)
Вот код, вопрос состоит в том, как сделать так, чтобы в переменной d
сохранялся исходный порядок элементов списка s
.
Ответы (3 шт):
Начиная с питона 3.7 словари гарантированно упорядочены в порядке добавления элементов. Но сетов это изменение не коснулось. Так что если эта упорядоченность нужна, то можно попробовать вместо сета использовать словарь: tio.run
s = ['a', 'n', 'o', 't']
d = dict.fromkeys(s)
print(d)
Впрочем, у меня есть ощущение, что в питоне сет предоставляет довольно много возможностей, которых нет у словаря. Если нужен именно сет, то никак. Если питон старше чем 3.7 - тоже никак. Только искать кастомные коллекции.
Начиная с версии Python 3.7, словари стали упорядоченными. Множества это не коснулось. (Источник)
В своих проектах для этих целей использовал модуль ordered-set
. Думаю, это то, что тебе нужно.
Если задача в том что бы убрать повторяющиеся значения то можно сделать вот так:
s = ['a', 'n', 'o', 't', 't']
res = list(dict.fromkeys(s))
print(res)
-- ['a', 'n', 'o', 't']