我试图编写一个从用户输入浮点数的代码,按升序对值进行排序。我尝试了在Stack Overflow中找到的选项,但它仍然无效。这是我的一段代码:
if option == 'f':
x = input()
y = (sorted(x, key=lambda z: float(z))) # sort float ascending
print(y)
>>> Input: 5.0 , 4.9 , 3.1, 0.5
Output: 0.5, 3.1, 4.9, 5.0
如何获取浮点数列表并打印排序后的输出?
答案 0 :(得分:3)
您需要将输入 string 拆分为单独的浮点数字符串,然后对其浮点值进行排序。以下代码在逗号上拆分并在排序之前删除任何空格:
if option == 'f':
x = (s.strip() for s in input().split(','))
y = (sorted(x, key=lambda z: float(z))) # sort float ascending
print(y)
输出:
['0.5', '3.1', '4.9', '5.0']
你也可以这样打印:
>>> print(', '.join(y)) # using join()
0.5, 3.1, 4.9, 5.0
>>> print(*y, sep=', ') # Python 3 style print function
0.5, 3.1, 4.9, 5.0
答案 1 :(得分:0)
您的输入是str
类型的字符串。您应该将其拆分并转换为float
。
@mhawke给出了一个很好的例子。