列表索引在 try/raise/exception 中超出范围
list index is out of range in try/raise/exception
我有以下代码:
for i in range(len(str(hoursList))):
try:
g(hoursList[i])
except Exception as ex:
print(str(nameList[i]) + " " + "has more than 80 hours worked!")
当我 运行 代码时,我收到一条错误消息 "IndexError: list index out of range"。我想知道是不是因为我有 hoursList[i],但是当我取出 [i] 时,循环 运行s 太多次了。
我的 nameList 和 hoursList 里面分别有以下内容。
['Michael Johnson', 'Sue Jones', 'Tom Spencer', 'Mary Harris', 'Alice Tolbert', 'Joe Sweeney', 'Linda Smith', 'Ted Farmer'、'Ruth Thompson'、'Bob Bensen']
[8.75, 8.75, 8.75, 8.75, 8.75, 8.75, 11.0, 11.0, 5.25, 5.0]
当您执行 len(str(hoursList))
时发生的事情是您将整个列表转换为一个字符串,然后遍历并为每个数字返回一个 i
,space,并且 ,
的新字符串。例如:
len(str(["hello", "world"])) == 18
但是如果你这样做:
len(["hello", "world"]) == 2
因此,当您处于 for i
循环中时,您最终会检查 hoursList
中实际有多少条目。
将循环更改为:
for i in range(len(hoursList)):
try:
g(hoursList[i])
except Exception as ex:
print(str(nameList[i]) + " " + "has more than 80 hours worked!")
我有以下代码:
for i in range(len(str(hoursList))):
try:
g(hoursList[i])
except Exception as ex:
print(str(nameList[i]) + " " + "has more than 80 hours worked!")
当我 运行 代码时,我收到一条错误消息 "IndexError: list index out of range"。我想知道是不是因为我有 hoursList[i],但是当我取出 [i] 时,循环 运行s 太多次了。 我的 nameList 和 hoursList 里面分别有以下内容。
['Michael Johnson', 'Sue Jones', 'Tom Spencer', 'Mary Harris', 'Alice Tolbert', 'Joe Sweeney', 'Linda Smith', 'Ted Farmer'、'Ruth Thompson'、'Bob Bensen'] [8.75, 8.75, 8.75, 8.75, 8.75, 8.75, 11.0, 11.0, 5.25, 5.0]
当您执行 len(str(hoursList))
时发生的事情是您将整个列表转换为一个字符串,然后遍历并为每个数字返回一个 i
,space,并且 ,
的新字符串。例如:
len(str(["hello", "world"])) == 18
但是如果你这样做:
len(["hello", "world"]) == 2
因此,当您处于 for i
循环中时,您最终会检查 hoursList
中实际有多少条目。
将循环更改为:
for i in range(len(hoursList)):
try:
g(hoursList[i])
except Exception as ex:
print(str(nameList[i]) + " " + "has more than 80 hours worked!")