Почему порядок элементов изменяется после преобразования отсортированного списка в набор в Python? - PullRequest
1 голос
/ 21 января 2020

Почему меняется порядок, когда я преобразую список в набор? Как получить результат сортированного набора в Python?

string = 'test'
result = sorted([character for character in string])
print(result)
#output
['e', 's', 't', 't']
print(set(result))
#output
{'t', 'e', 's'}

Я пытаюсь произвести это:

{'e', 's', 't'}

1 Ответ

2 голосов
/ 21 января 2020

В соответствии с документами :

Заданный объект - это неупорядоченная коллекция различных хэшируемых объектов. Обычное использование включает проверку членства, удаление дубликатов из последовательности и вычисление математических операций, таких как пересечение, объединение, разность и симметрия c разница.

Здесь вы должны использовать:

from collections import OrderedDict
string = 'test'
result = sorted([character for character in string])
print(list(OrderedDict.fromkeys(result)))

Или, если ваша версия> = 3.7, словари упорядочены, поэтому вы можете использовать:

string = 'test'
result = sorted([character for character in string])
print(list(dict.fromkeys(result)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...