列表索引超出try / raise / exception的范围

时间:2018-12-05 15:44:00

标签: python-2.7 indexoutofrangeexception index-error

我有以下代码:

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:列表索引超出范围”。我想知道是否是因为我有hoursList [i],但是当我取出[i]时,循环运行了太多次。 我的nameList和hoursList分别具有以下内容。

['Michael Johnson','Sue Jones','Tom Spencer','Mary Harris','Alice Tolbert','Joe Sweeney','Linda Smith','Ted Farmer','Ruth Thompson','鲍勃·本森'] [8.75,8.75,8.75,8.75,8.75,8.75,11.0,11.0,5.25,5.0]

1 个答案:

答案 0 :(得分:1)

执行len(str(hoursList))时发生的事情是将整个列表变成一个字符串,然后遍历并为每个数字,空格和i返回一个,。新字符串。例如:

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!")