любой простой способ отсортировать стандарт по числу с плавающей точкой в ​​порядке убывания в Python? - PullRequest
0 голосов
/ 27 мая 2018

У меня есть стандартный вывод, как показано ниже:

seventy-five 0.050
states 0.719
drainage-basin 0.037
scotland 0.037
reading 0.123
thirty-eight 0.000
almost 0.037
rhine 0.000
proper 0.037
contrary 0.087

Любой простой способ сортировки длинного стандартного списка вывода на основе числа с плавающей запятой в порядке убывания значения и сохранения стандартного формата вывода.преобразовать его в список и сортировать?Извините за глупый вопрос, так как я новичок в Python.

1 Ответ

0 голосов
/ 27 мая 2018

Сортировка со списком кажется довольно естественной.Вы сортируете строки (data.split('\n')) по значению с плавающей точкой в ​​конце каждой строки (float(line.split()[-1]) и получаете нисходящий порядок с ключевым словом reverse.

data = """seventy-five 0.050
states 0.719
drainage-basin 0.037
scotland 0.037
reading 0.123
thirty-eight 0.000
almost 0.037
rhine 0.000
proper 0.037
contrary 0.087"""

result = "\n".join(
    sorted(data.split("\n"), key=lambda s: float(s.split()[-1]), reverse=True)
)

print(result)

# states 0.719
# reading 0.123
# contrary 0.087
# seventy-five 0.050
# drainage-basin 0.037
# scotland 0.037
# almost 0.037
# proper 0.037
# thirty-eight 0.000
# rhine 0.000

Если у вас есть список с отвращениемВы можете использовать инструменты командной строки, такие как sort .

...