有时在取 list 中元素时可能会遇到以下情形:
>>> a=[]
>>> a[0]
Traceback(most recent call last):
File"", line 1,in
IndexError: list index out of range
这种情况发生是因为只定义了一个空列表,没有进行任何的赋值,所以列表里什么也没有,而后面的报错也明确表示了索引超出范围,即写上的0其实是第一位值的位置,而此时是空列表没有赋值,故而报错。
而如果我们使用以下语句则不会报错:
>>> a[0:]
[]
这个不是什么小技巧,这是不一样的语句意义,这句话其实是把这个列表 a 里的所有值都输出,其效果和下面表达的最终结果是一致的。
>>> a[:]
[]
而这个语句并不能避免上面报错中超出索引范围的错误,这个根本就是两种不同的意义的语句。a[0:] 和 a[:] 在脚本输出时相当于 print(a) 的意思。这不是解决错误的方式,不能将它当成 trick 来用。