这是代码:
records = {}
file = open(filepath, 'r')
for line in file.readlines():
r = line.split('\t')
print r
records.setdefault(int(r[1]), {})
records[int(r[1])].setdefault(int(r[0]), {})
records[int(r[1])][int(r[0])] = float(r[2])
其中r打印出来是:
['15', '3116', '3.0', '1337402827\n']
['\n']
提示的错误是: records.setdefault(int(r[1]), {})
IndexError: list index out of range
我换成 print r[1] 的时候,打印出来的是【3116】
但是提示的错误是:
print r[1]
IndexError: list index out of range
这是什么问题啊。。
”IndexError: list index out of range”这种错误一般有两种情况:
第一种可能情况:list[index], index超出范围,也就是常说的数组越界。
第二种可能情况:list是一个空的,没有一个元素,进行list[0]就会出现该错误,在爬虫问题中很常见,比如有个列表爬去下来为空,统一处理就会报错。
扩展资料:
异常处理特点:
1.在应用程序遇到异常情况(如被零除情况或内存不足警告)时,就会产生异常。
2.发生异常时,控制流立即跳转到关联的异常处理程序(如果存在)。
3.如果给定异常没有异常处理程序,则程序将停止执行,并显示一条错误信息。
4.可能导致异常的操作通过 try 关键字来执行。
5.异常处理程序是在异常发生时执行的代码块。在 C# 中,catch 关键字用于定义异常处理程序。
6.程序可以使用 throw 关键字显式地引发异常。
7.异常对象包含有关错误的详细信息,其中包括调用堆栈的状态以及有关错误的文本说明。
8.即使引发了异常,finally 块中的代码也会执行,从而使程序可以释放资源。
参考资料:百度百科——异常处理