逐行解析文件时,我会生成一个字符串列表。其中一个字符串是一个数字,所以我想把它作为一个浮点数进行类型转换。
所以
["PRO", "CCC", "4629.00"]
应该是
["PRO", "CCC", 4629.00]
我的解析器逐行读取文件,但是当我尝试用上面的列表' s [2]项作为浮点数填写我的dicts dict时,如下所示:
fh = open("textfile_w_header","r")
def codon_preference_table_with_AA(fh):
header = fh.readline()
for line in fh:
row = line.split()
row[2] = float(row[2])
myDict = {row[0]:{row[1]:row[2]}}
print(myDict)
我收到了一个值错误:
ValueError: Mixing iteration and read methods would lose data
在制作字典之后,还有另一种方法可以将这个最里面的值强制转换为浮点数吗?
答案 0 :(得分:0)
为什么不关注代码?
line = "PRO CCC 4629.00"
row = line.split()
f = float(row[2])
myDict = {row[0]:{row[1]:f}}
print(myDict)
输出。
{'PRO': {'CCC': 4629.0}}
通过您的代码
fh = open("textfile_w_header","r")
def codon_preference_table_with_AA(fh):
header = fh.readline()
for line in fh:
row = line.split()
f = float(row[2])
myDict = {row[0]:{row[1]:f}}
print(myDict)