我有一个如下所示的文件:
1 1 C C 1.9873 2.347 3.88776
1 2 C Si 4.887 9.009 1.21
我想逐行读取文件的内容。当我使用的行上只有数字时:
for line in readlines(file):
data = map(float, line.split)
但这仅在 line.split 的所有元素都是数字时才有效。如何让它将字母存储为字符串,将数字存储为浮点数?
$ cat 1.py
def float_or_str(x):
try:
return float(x)
except ValueError:
return x
line = '1 1 C C 1.9873 2.347 3.88776'
print map(float_or_str, line.split())
$python 1.py
[1.0, 1.0, 'C', 'C', 1.9873, 2.347, 3.88776]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)