python对list数据分割

list index out of range
#   分割数据,2000个为一组
data_divide1=[]
a=0
while a < 80:
      data_divide1.extend([data_exact1[a][i:i + 2000]for i in range(0, len(data_exact1[a]), 2000)])
      a=a+1
print(type(data_divide1),len(data_divide1))
# 删除不足2000个元素的索引和值
b=0
while b < 10378:
      if range(len(data_divide1[b])) != 2000 :
              del data_divide1[b]
b=b+1
<class 'list'> 10378
         Traceback (most recent call last):
         File "D:\pythonProject5\dataf.py", line 59, in <module>
         if range(len(data_divide1[b])) != 2000 :
         IndexError: list index out of range
data_divide1的type是list,它的len是10378,但是构建循环b < 10378,运行结果提示却是list index out of range,明明没有超过,令b<5189,也就是10378/2,就正常运行,为什么这里索引变成了一半。
我想要达到的结果:将数据分割为每个索引中包含2000个元素,不足的丢弃。

因为你在循环里执行了del,所以整体数量改变了
同时,你在中间删除了一项,那么后续项会向前移动,而你的b在del之后依然+1,相当于中间跳过了一项没有处理
解决办法:
不要从0开始循环,从后往前循环
b=len(data_divide1)-1
while b>-1:
b-=1

if range(len(data_divide1[b])) != 2000 :
这个判断式肯定错,左边是 range() 右边是整数 取!=这个式子永远成立