Python - 将列表中的数据添加到 table 时出错
Python - Error when adding data from list to a table
我有一个包含几条记录的列表:
entries = ['Agenda', 'Measure 1', 'Measure 2']
我正在尝试创建一个循环并将它们添加到 table 中,如下所示:
for i in range(0, len(entries)):
table.cell(i, 0).text = entries[i]
下面在最后一行抛出一个IndexError: list index out of range
,想知道我哪里错了。
首先,当遍历 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
使用的是哪种数据结构,但请查阅相关文档并了解应如何添加新单元格。
我有一个包含几条记录的列表:
entries = ['Agenda', 'Measure 1', 'Measure 2']
我正在尝试创建一个循环并将它们添加到 table 中,如下所示:
for i in range(0, len(entries)):
table.cell(i, 0).text = entries[i]
下面在最后一行抛出一个IndexError: list index out of range
,想知道我哪里错了。
首先,当遍历 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
使用的是哪种数据结构,但请查阅相关文档并了解应如何添加新单元格。