Python代码触发IndexError: list index out of range报错求助
问题分析与修复
你的两段代码触发IndexError的核心原因是错误使用[i]代替了farm[i]:
[i]是创建了一个仅包含元素i的新列表,比如当i=0时,这个列表只有[0],长度为1,你尝试访问索引1的元素时,自然会超出范围。- Version 2里的
if i > len(farm)判断完全无效,因为range(len(farm))生成的是0,1(farm长度为2),i永远不会大于2,所以这个条件永远不会触发。
修复后的代码
方式1:保留索引遍历逻辑
farm = [["spinach", 5],["strawberry", 4]] for i in range(len(farm)): print(farm[i][0], " :", farm[i][1], "days left")
方式2:更Pythonic的直接遍历元素(推荐)
直接遍历farm里的子列表,用变量接收作物名和剩余天数,代码更简洁:
farm = [["spinach", 5],["strawberry", 4]] for crop, days_left in farm: print(crop, " :", days_left, "days left")
内容的提问来源于stack exchange,提问作者layered.pizza
相关产品推荐
相关产品推荐

