列表索引在 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!")