我有一个994行7列的.txt文件。第二列得到了与第三列上的残基相互作用的蛋白质残基的名称。右边剩下的是分数(前两个不重要)。你知道吗
我试图把它变成一个字典,第二列的元素作为键,其余的元素作为键值。问题是它似乎只放在最后一行。你知道吗
这是我的密码:
>>> f=open('C:/Users/Alex/Documents/1TRKGremlin.txt')
>>> dict={}
>>> for line in f:
... lsplit=line.split()
>>> try:dict[lsplit[2]].appendl(lsplit[3:])
... except KeyError: dict[lsplit[2]]=[lsplit[3:]]
>>>print dict[]#here I only get the last line of the file
文件如下所示:
i j i_id j_id r_sco s_sco prob
205 208 205_K 208_E 0.5625 3.889 1.000
557 660 557_I 660_A 0.5471 3.783 1.000
425 439 425_M 439_G 0.5462 3.776 1.000
19 76 19_A 76_S 0.4867 3.365 1.000
436 462 436_K 462_P 0.4770 3.298 1.000
579 661 579_K 661_Q 0.4446 3.074 1.000
谢谢你!你知道吗
在设置
dict
中的任何内容之前,for
循环正在运行到完成。必须在循环中初始化dict
项,因为一旦循环完成,最后一行的值只有lsplit
:旁注:我把你的字典改名为
mydict
。不要将变量命名为与Python内置函数相同的名称,否则会对内置函数进行阴影处理,使其在变量的作用域中不可用,并导致混乱的错误。我还修复了一些拼写错误,并在每个PEP8的赋值运算符周围添加了空格。你知道吗相关问题 更多 >
编程相关推荐