问题 回看自己的代码发现里面有个BUG,空list 在窗口切片时,下标越界也不报错。
比如我想把一个原始列表,进行去重处理,如果原始列表的当前元素不在新建列表的窗口内,我则填加至新列表,之前写的代码,回看里面有个BUG, 对开始的几个,就是空List,还去取切片,不是应该取不到才对么?就去查找了下原因。
代码如下:
del_1 =[]
ori_1 = [1,2,1,2,1,2,3,4,5]
for i in range(len(ori_1)):
if ori_1[i] not in del_1[-5:]:
del_1.append(ori_1[i])
print('当前元素为第{}'.format(i),'窗口为5的新列表为',del_1)
# 结果如下:
当前元素为第0 窗口为5的新列表为 [1]
当前元素为第1 窗口为5的新列表为 [1, 2]
当前元素为第6 窗口为5的新列表为 [1, 2, 3]
当前元素为第7 窗口为5的新列表为 [1, 2, 3, 4]
当前元素为第8 窗口为5的新列表为 [1, 2, 3, 4, 5]
但如果List中单独取某个下标越界的元素会报错。
ori_1[20]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-25-093d4095441b> in <module>
----> 1 ori_1[20]
IndexError: list index out of range