IndexError:列表索引超出范围.尽管在射程内



提前感谢您的帮助。

我遇到了以下代码的问题:

category = path.split("/")[3]
label = int(category.split("_")[0][1]) 
y.append(label)

错误如下:IndexError:列出索引超出范围。当我进行拆分时,错误出现在第一行。我(想(我理解这个错误意味着什么,但当我做len(路径(时,我得到33。。。所以[3]不应该有问题。

为了更好地理解拆分,我测试了以下代码片段:

txt = "welcome to the jungle"
x = txt.split()[2]
print(x)

对于上面的代码,输出是预期的"the",因为它是[2]条目。

现在,回到我的代码,当我运行时:

x = path.split()
print(x)

我得到以下输出:

['.\00\01_palm\frame_00_01_0001.png']

我遇到问题的代码来自我正在本地机器(Jupyter(上重新创建的一个公共GitHub项目。当我在Google Colab上运行相同的项目时,我没有任何问题。但当我在当地做这件事时,我会遇到这种情况。

问题1(有人能向我解释一下代码为什么使用:path.split("/"([3]吗?为什么是"/"?从输出中看到的实际路径只有"\","/"是否意味着其他内容?对不起,我对python很陌生。

问题2(如何修复"IndexError:列表索引超出范围"?

谢谢

从代码中可以清楚地看出,在Github上,它的路径适用于路径分隔符为/Linux机器,但您在路径分隔符是\windows上运行它,因此您必须将代码修改为,

category = path.split("\")[3]
label = int(category.split("_")[0][1]) 
y.append(label)

对于任何机器,如果你想看到路径分隔符,那么你可以做

import os
print(os.path.sep)

对于Linux系统,输出为:

/

相关内容

  • 没有找到相关文章

最新更新