【问题标题】:i keep getting indexerror:index list out of range on python我不断收到 indexerror:index list out of range on python
【发布时间】:2016-10-29 21:21:29
【问题描述】:
if productid==row[0]: #This means it runs every row in the reader file which is the csv file in this case
    price = row[2]
    stocklevel = row[3]
    reorderlevel = row[4]
    targetlevel = row[5]
    total = float(amount)*float(price)
    totalprice = float(totalprice)+float(total)
    stocklevel = float(stocklevel)-float(amount)
    newstock = (stocklevel)
    b = open('products.csv', 'w')
    a = csv.writer(b)
    data = [['row[3]', 'row[4]', 'row[5]'],
           ['293', '219'],
           ['54', '13']]
    a.writerows(data)
    b.close()

基本上我一直收到这个错误文件

“E:\Python Programme\pythonv5.py”,第 71 行,在 productlist() 文件“E:\Python Programme\pythonv5.py”,第 9 行,在 productlist print(row[0]+" "+row[1]+" "+row[2]) IndexError: list index out of range

【问题讨论】:

  • 你能显示你的CSV文件的数据结构和它的内容吗?因为索引错误非常明显。在这种情况下,行 [0](或 1 或 2)不存在。
  • 错误是指带有打印语句的行,但您的代码显示没有打印语句。索引列表超出范围意味着您正在尝试访问例如列表中只有 2 个对象的第三个对象。或者你的列表可能是空的,然后它会随时说。尝试将 print(row[0]... 更改为 print(len(row).) 以查看列表中有多少对象。

标签: javascript python python-2.7 python-3.x indexing


【解决方案1】:

试试:

if len(row) > 0 and productid==row[0]:
   #rest of the code here ...

您需要确保行列表具有被索引的长度。

【讨论】:

  • 现在的回答方式,勉强算得上是回答,更多的是评论。我认为这里可以解释为什么这可以解决问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-27
  • 1970-01-01
  • 1970-01-01
  • 2019-04-15
  • 2020-10-27
  • 1970-01-01
相关资源
最近更新 更多