【问题标题】:Python : index out of rangePython:索引超出范围
【发布时间】:2015-04-27 00:01:43
【问题描述】:

我有一个问题,在我的代码中很简单

for i in xrange(len(acid1)):
        j=0
        k=0
        while (j<worksheet.ncols):
            if (acid1[i].lower()==worksheet.row_values(0)[j+1].lower()):
                col1=j+1
                while (k<worksheet.nrows):
                    if (acid2[i].lower()==worksheet.row_values(k+1)[0].lower()):
                        row1=k+1
                        break
                    else:
                        k+=1
                break
            else:
                j+=1

并列

if (aminokwas1[i].lower()==worksheet.row_values(0)[j+1].lower()):

我得到一个 IndexError: list index out of range。有人知道原因吗?我不使用任何列表或任何我可能超出范围的东西。请帮忙。

【问题讨论】:

  • aminokwas1 和 worksheet.row_values(0) 在我看来就像列表。
  • 我没有在你的代码中看到这一行,

标签: python python-2.7


【解决方案1】:

当j == worksheet.ncols-1 时,j+1 似乎不是worksheet.row_values(0) 的有效索引。据推测,您检查j,因为worksheet.row_values 的索引是0 到worksheet.cols - 1。

【讨论】:

  • 对于 j+1 的 j 无效。我发现 "k=0" 应该在 "j" 循环的开头,但它也不起作用。
  • k 也有类似的问题,而且您同时使用ncols 和nrows 作为row_values(0) 索引的上限。其中之一可能是错误的使用。
猜你喜欢
  • 2017-10-02
  • 2014-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-29
  • 2016-04-17
  • 2016-07-21
相关资源
最近更新 更多