IndexError:将索引列表超出嵌套循环

时间:2016-09-27 15:11:54

标签: python python-2.7

我有一个代码读取输入文件,这是一个xyz文件,取出我需要的每个原子并计算原子之间的距离,这个代码:

  lines = ['SOL','DP','DT', 'DG', 'DA', 'DC', '4', '5', '6', 'NA', 'OW' ]

for record in fo_lines:
  line = record.split()
  if ((line[3] == lines[0]) and line[2]==lines[10]):
    sol.append(line)
  elif ((line[3] == lines[1] and line[5]==lines[6]) or (line[3] == lines[2] and line[5]==lines[7]) or (line[3] == lines[3] and line[5]==lines[8]) or !!(line[3] == lines[4] and line[5]==lines[7])\
      or (line[3] == lines[5] and line[5]==lines[6]) or (line[3] == lines[5] and line[5]==lines[8])):
    cutP.append(line)
   elif (line[2]==lines[9]):
    na.append(line)


for i in range(len(cutP)):
  for j in range(len(sol)):
    d = math.sqrt((float(cutP[i][6])-float(sol[j][6]))**2+(float(cutP[i][7])-float(sol[j][7]))**2+(float(cutP[i][8])-float(sol[j][8]))**2)
    if ( d > 6.00 ):
       del sol[j]`  

但它告诉我当我操作两点之间的距离时,即当我计算d时,循环中存在“索引错误”。

这是输入文件的一部分:

      ATOM      1  O5' DG  X   1      40.619  27.909  62.158  0.00  0.00            
      ATOM      2  H5T DG  X   1      41.345  28.183  62.722  0.00  0.00            
      ATOM      3  C5' DG  X   1      39.409  28.588  62.460  0.00  0.00
      ATOM      4 H5'1 DG  X   1      39.618  29.399  63.190  0.00  0.00            
      ATOM      5 H5'2 DG  X   1      38.782  27.991  63.156  0.00  0.00

正如您所看到的,缩进似乎是正确的,因为x,y和z对应于列表中每个原子的第6,7和8项。任何人都可以帮我解决这个问题吗?提前谢谢。

0 个答案:

没有答案