在dicts dict中进行类型转换

时间:2014-11-20 07:16:08

标签: python python-2.7 dictionary casting floating-point

逐行解析文件时,我会生成一个字符串列表。其中一个字符串是一个数字,所以我想把它作为一个浮点数进行类型转换。

所以

["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

在制作字典之后,还有另一种方法可以将这个最里面的值强制转换为浮点数吗?

1 个答案:

答案 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)