转 Python-IndexError: list index out of range

https://www.cnblogs.com/2bjiujiu/p/9063864.html

 

Error:IndexError: list index out of range

Where?

  对Python中有序序列进行按索引取值的时候,出现这个异常

 

Why?

  对于有序序列: 字符串 str 、列表 list 、元组 tuple进行按索引取值的时候,默认范围为 0 ~ len(有序序列)-1,计数从0开始,而不是从1开始,最后一位索引则为总长度减去1。当然也可以使用 负数表示从倒数第几个,计数从-1开始,则对于有序序列,总体范围为 -len(有序序列) ~ len(有序序列)-1,如果输入的取值结果不在这个范围内,则报这个错

 

Way?

  检查索引是否在 -len(有序序列) ~ len(有序序列)-1 范围内,修改正确

 

错误代码:

1
2
3
4
name = "beimenchuixue"
students = ["beimenchuixue""boKeYuan""Python""Golang"]
print(name[20])
print(students[4])

 

正确代码:

1
2
3
4
name = "beimenchuixue"
students = ["beimenchuixue""boKeYuan""Python""Golang"]
print(name[3])
print(students[3])

 

 

##########for 循环 遇到 IndexError:

https://www.jianshu.com/p/f1b58ec12b72

 

失败原因:爬虫在做xpath时候匹配到空值,粗心大意以为网页很简单,没仔细看,因为标识tr还有空值

解决方法:加上try.....except 错误机制跳过tr空值

 

        try:

            #寻找tr下面的标识

            qihao = item.select('td strong')[0].text

            onewei = item.select('td div')[0].text

            twowei = item.select('td div')[1].text

            threewei = item.select('td div')[2].text

            fourwei = item.select('td div')[3].text

            fivewei = item.select('td div')[4].text

            sixwei = item.select('td div')[5].text

            sevenwei = item.select('td div')[6].text

            list = [qihao,onewei,twowei,threewei,fourwei,fivewei,sixwei,sevenwei]

            all_lists.append(list)

            print(list)

        except IndexError:

            pass

 

posted @ 2018-10-08 17:49  feiyun8616  阅读(710)  评论(0编辑  收藏  举报