TypeError:需要浮点,Python
我想把浮点数列表转换成整数。 我的代码 我应该换什么? 文件很大,只有几行TypeError:需要浮点,Python,python,list,Python,List,我想把浮点数列表转换成整数。 我的代码 我应该换什么? 文件很大,只有几行 1.200000e+03 1.200000e+03 1.200000e+03 1.200000e+03 1.200000e+03 1.200000e+03 1.200000e+03 1.200000e+03 您需要先强制转换才能浮动: [int(float(i)) for i in data1] 呼叫int将为您输入以下号码: In [8]: int(float("1.23456e+03")) Out[8]: 123
1.200000e+03
1.200000e+03
1.200000e+03
1.200000e+03
1.200000e+03
1.200000e+03
1.200000e+03
1.200000e+03
您需要先强制转换才能浮动:
[int(float(i)) for i in data1]
呼叫int
将为您输入以下号码:
In [8]: int(float("1.23456e+03"))
Out[8]: 1234
您可以在文件逻辑中完成这一切:
with open("/home/milenko/Distr70_linux/Projects/Tutorial_Ex3/myex/base.txt", 'r') as f:
floored = [int(float(line)) for line in f]
使用它打开文件是一种很好的做法,它将为您处理文件的关闭。此外,int和float可以处理前导或尾随空格,所以您不必担心使用strip
另外,如果您只想拉浮点数,而不想拖地板,map
是创建浮点数、整数等列表的好方法。。从文件或任何iterable:
floored = list(map(float, f))
或者使用python3,其中map返回一个迭代器,您可以双重映射:
floored = list(map(int, map(float, f)))
python2中的等效代码将使用itertools.imap
from itertools import imap
floored = map(int, imap(float, f))
从文件中读取的数据始终为
str
类型,其中所需的参数为浮点
所以你需要把它转换成float
data1c = [int(float(i)) for i in data1]
您可以将字符串强制转换为浮动<代码>数据1=[float(line.strip())表示行输入…]
data1c = [int(float(i)) for i in data1]