【发布时间】:2011-01-18 23:13:34
【问题描述】:
所以,我有一个看起来像这样的文件:
# 3e98.mtz MR_AUTO with model 200la_.pdb
SPACegroup HALL P 2yb #P 1 21 1
SOLU SET RFZ=3.0 TFZ=4.7 PAK=0 LLG=30
SOLU 6DIM ENSE 200la_ EULER 321.997 124.066 234.744 FRAC -0.14681 0.50245 -0.05722
SOLU SET RFZ=3.3 TFZ=4.2 PAK=0 LLG=30
SOLU 6DIM ENSE 200la_ EULER 329.492 34.325 209.775 FRAC 0.70297 0.00106 -0.24023
SOLU SET RFZ=3.6 TFZ=3.6 PAK=0 LLG=30
SOLU 6DIM ENSE 200la_ EULER 177.344 78.287 187.356 FRAC 0.04890 0.00090 -0.57497
遍历此文件并仅提取浮点数的最佳方法是什么?
在这种情况下,“最佳”方案是仅提取类似于“321.997”的数字(它们是病毒细胞结构坐标)并将它们添加到列表中。在我正在查看的每个文件中,每行都有 6 个这样的数字。提取这些数字后,我可以在我已经编写的方法中使用该列表来计算新坐标,以旋转单元结构以匹配数据集中的其他数据。
【问题讨论】:
-
在什么意义上最好?你的限制或目标是什么?您的输入可以有多大?您是否需要将解决方案移植到旧版本的 Python 中?你期待大量的失败还是大量的成功?您是否希望将“0e0”之类的东西视为浮点数?那么“1,100.0”呢?文化问题呢?除非您更详细地描述您的问题,否则不可能知道什么最适合您的具体情况。
-
不是作业,我发誓!这是一个从名为 Phaser 的程序获取 URL 编码输出的项目,并使用浮点值计算单元结构的新 x、y 和 z 坐标。
-
@stephenjahl:如果不是家庭作业,请提供一些有关您要优化的内容的背景信息。正如@Mark Byers 指出的那样,没有背景就无法解释“最佳”。家庭作业没有背景。如果您有一些背景知识,请提示您所说的“最佳”是什么意思。
-
简单! "def filterFloats(): return []",因为该列表中没有浮点数,只有字符串...
-
@stephenjahl:请使用您的最佳方案信息更新问题。请不要评论您拥有的问题。请更正并澄清问题。然后删除评论。没有人会阅读一长串 cmets 来理解您的问题。
标签: python list floating-point loops