Как конвертировать набор в список типов с плавающей точкой? - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть mark_list типа с плавающей запятой, в котором я пытаюсь сортировать в порядке возрастания.

mark_list
Out[100]: [39, 37.21, 38, 37.21, 37.2]

sorted(mark_list)
Out[101]: [37.2, 37.21, 37.21, 38, 39]

set(sorted(mark_list))
Out[102]: {37.2, 37.21, 38, 39}

list(set(sorted(mark_list)))
Out[103]: [37.21, 37.2, 38, 39]

Я ожидал вывод [37.2, 37.21, 38, 39]

Почему 37,21 впереди 37,2? Чего мне не хватает?

Ответы [ 2 ]

5 голосов
/ 21 февраля 2020

Наборы не заказаны. Если вы хотите sh иметь отсортированный список, сначала получите набор, затем конвертируйте в список и, наконец, отсортируйте.

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

На самом деле, вы не хотите использовать set в этом случае. Здесь важно учитывать, что:

A set

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

Вы можете прочитать больше на Python документы

...