我有以下代码:
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]
答案 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!")