Rob*_*aze 3 python floating-point list
我的程序应该读取带有一堆数字的文本文档,并列出只有正数的列表.我无法将文本文档中的字符串转换为浮点数,因此我无法确定它们是否是正面的.
我链接了一个截图,因为我的副本粘贴有问题.

http://i.stack.imgur.com/L1Z7z.png
没有数字= float(number),我明白了['3.7', '-22', '3500', '38', '-11.993', '2200', '-1', '3400', '3400', '-3400', '-22', '12', '11', '10', '9.0']
您可以轻松地将该列表转换为浮点数:
>>> nums = ['3.7', '-22', '3500', '38', '-11.993', '2200', '-1', '3400', '3400', '-3400', '-22', '12', '11', '10', '9.0']
>>> map(float, nums)
[3.7, -22.0, 3500.0, 38.0, -11.993, 2200.0, -1.0, 3400.0, 3400.0, -3400.0, -22.0, 12.0, 11.0, 10.0, 9.0]
Run Code Online (Sandbox Code Playgroud)
但问题似乎是文件中的行不包含单独的浮点数.当你打电话时float(number),number是来自文件的一行,它(来自错误)似乎包含三个以空格分隔的数字"3.7 -22 3500".
你需要的是在拆分后调用float函数:
for line in f:
for numberString in line.split()
number = float(numberString)
if(number > 0)
numbers.append(number)
Run Code Online (Sandbox Code Playgroud)
或者,功能更多:
for line in f:
numbers.extend([n for n in map(float, line.split()) if n > 0])
Run Code Online (Sandbox Code Playgroud)