【发布时间】:2017-03-23 21:06:18
【问题描述】:
我有一个看起来像这样的文件(比如“myfile”):
4
1.0 0 0
0.0 1.0 0.0
0.0 0.0 1.0
C 0.0 0.0 -0.5
C 0.0 0.0 0.82
H 0.0 0.9 -1.0
H 0.0 -0.9 -1.0
第一个数字(在本例中为 4)确定有多少行以字符(例如 C 或 H)开头。
我要做的是读取字符后面的数字并用它们做一些数学运算。在这种情况下,我想计算第 5 行和第 6 行、第 5 行和第 7 行以及第 5 行和第 8 行之间的距离(然后是第 6 行和第 7 行之间的距离以及第 6 和第 8 行之间的距离,然后是第 7 行和第 8 行之间的距离)。所以是这样的:
5 和 6:(0.0 - 0.0)^2 + (0.0 - 0.0)^2 + (-0.5 - 0.82)^2
5 和 7:(0.0 - 0.0)^2 + (0.0 - 0.9)^2 + (-0.5 - -1.0)^2
等等。
要做到这一点意味着我需要在行中读取,然后只将数字转换为浮点数,忽略字符。有人对如何做到这一点有任何建议吗?非常初步我有:
with open("myfile.txt", "r") as inputs:
print lines[4: sum(1 for _ in inputs)]
这让我可以访问这 4 行,每行都是字符串:
['C 0.0 0.0 -0.5\n', 'C 0.0 0.0 0.8\n', 'H 0.000000 0.9 -1.0\n', 'H 0.000000 -0.9 -1.0\n']
但是,我需要弄清楚如何将数字转换为浮点数,然后进行比较。
任何指针都会非常感谢/赞成。谢谢!
【问题讨论】:
标签: python string floating-point sum