有什么简单的方法可以通过python中的降序按浮点数排序标准吗?

时间:2018-05-27 11:32:25

标签: python redirectstandardoutput

我有一个标准输出,如下所示:

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 :(得分:0)

使用列表排序似乎很自然。您可以按行(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