首页 > 解决方案 > Python - 将数据从列表添加到表时出错

问题描述

我有一个包含一些记录的列表:

entries = ['Agenda', 'Measure 1', 'Measure 2']

我正在尝试创建一个循环并将它们添加到下表中:

for i in range(0, len(entries)):
    table.cell(i, 0).text = entries[i]

下面IndexError: list index out of range在最后一行抛出一个,想知道我哪里出错了。

标签: pythonpython-3.xlistpython-pptxindex-error

解决方案


首先,当迭代它时,range(len(something))这是一个危险信号。一定会有更好的办法。

如果您需要索引和值,可以使用内置enumerate()函数:for i, val in enumerate(entries):

您收到的错误意味着您正在尝试访问不存在的元素 i。列表元素应该可以很好地访问 - 它可能table.cell(i,0) 不存在。您可以通过尝试验证这一点:

for i in range(0, len(entries)):
    print(entries[i]) # works

相比:

for i in range(0, len(entries)):
    print(table.cell(i, 0).text) # probably doesn't work

我使用您的旧 for 循环来表明这不会导致错误,但知道这range(len())是一种不好的做法:它使代码更难阅读。

我不确定您使用的是哪种数据结构table,但请查看相关文档并了解应该如何添加新单元格。


推荐阅读