python - 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
在最后一行抛出一个,想知道我哪里出错了。
解决方案
首先,当迭代它时,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
,但请查看相关文档并了解应该如何添加新单元格。
推荐阅读
- r - R 中 DBSCAN 的 DBCV 验证
- discord - 将 C++ 程序设置为游戏
- laravel - 我们如何使用路径在 laravel 中显示图像?
- angular - 有没有办法可以在使用 Redux 模式开发的 Angular 应用程序上使用 AEM SPA 编辑器?
- sql - 在 PostgreSQL 中插入多个日期
- .net-core - 如何在 Blazor Server 应用程序中停止事件传播
- python - 如何在python中逐行执行命令行
- session - Mvc 5 身份不活动
- python - ValueError:为数组排序检测到非字符串对象。请改为传递“C”、“F”、“A”或“K”
- docker - Jenkins Pipeline Image.inside 在工作区而不是容器内运行 shells 命令