我有一个标准输出,如下所示:
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的初学者。
答案 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。